2022년 정보처리기사 실기 2회 - 2

Darcy Daeseok YU ·2023년 4월 16일
0

관계 대수

Project : 파이+컬럼(테이블명)

서브 쿼리

답은 ALL

SELECT *
FROM 상품
WHERE 단가 > EXISTS | IN | ANY | ALL (

        SELECT 단가
        FROM 상품 
        WHERE 제조사 = 'B'

)

단가 > 부등호가 있을경우에는 IN || EXISTS를 사용하지 못함

ALL vs ANY
ALL : 두개다 만족할 것
ANY : 값 중에 한개라도 만족할 것

함수적 종속

완전함수 종속 (Full Functional Dependency): 종속자가 기본키에만 종속되며, 기본키가 여러속성으로 구성되어 있을경우(복합키) 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속된 경우

부분함수 종속 (Partial Functional Dependency): 기본키가 여러속성으로 구성되어 있을 경우(복합키) 기본키를 구성하는 속성중 일부만 종속되는 경우

이행적함수 종속 (Transitive Dependency): X->Y , Y->Z 이란 종속관계 있을경우 X->Z가 성립되는 경우

정규화하지 않을 경우 나타나는 이상현상

-삽입이상 : 릴레이션에서 데이터를 삽입할 때 의도와는 상관없는 원치않는 값들도 함께 삽입되는 현상
-삭제이상 : 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 연쇄 삭제 현상
-갱신이상 : 릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상

데이터베이스 용어

릴레이션 === DB 테이블

속성(어트리뷰트, Attribute) === DB 컬럼

차수(Degree) === 속성의 수 === DB 컬럼의 수

튜플(Tuple, 레코드) === DB 행

카디날리티(Cardinality) === 튜플의 수 === DB 행의 수

도메인(Domain) === 각속성의 값의 제약조건 === DB 컬럼의 값의 제약조건

스키마(Schema) === DB 구조 / 제약조건에 대한 전반적인 명세를 기술한 메타데이터의 집합
스키마는 DB를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약조건등에 관해 전반적으로 정의한다.

논리모델 vs 물리모델

논리모델 물리모델
엔티티(Entity) 테이블(Table)
속성(Attribute) 컬럼(Column)
관계(Relation) 관계(Relation)
키 그룹(Key group) 인덱스(index)

정규화

비정규 Relation
=> 도메인 원자값만 남긴다.
아무개 43 등산,독서

<유저테이블>
id1 아무개 43

<취미테이블>
id1 등산
id1 독서

제1정규형
=> 부분 함수적 종속 제거
복합키가 가진 속성중 일부만 종속되는 경우

제2정규형
=> 이행적 함수적 종속 제거
X -> Y -> Z 테이블 2개로 만들면서 종속 제거
김길동 vip 10%
<X:Y> <Y:Z>
김길동 vip vip 10%

제3정규형
=> 결정자이면서 후보키가 아닌것 제거

BCNF
=> 다치 종속 제거
제4정규형
=> 조인종속성 이용
제5정규형

C언어 실기 기출

- Struct
struct student {
int name,age
}

-struct 선언
struct student students[10]
학생 10명의 name,age를 저장하는 배열을 생성

- 포인터 *p

int main() {
	char *p1= "2022" : p1의 주소가 100이면 주소100,101,102,103까지 1글자씩 저장 
    + 문자열 끝에는 \0 (null) 값 포함  104에 \0
	char *p2= "202210" : p2의 주소가 200이면 주소 200, 201, 202 ~ 205까지 1글자씩 저장
 	+ 문자열 끝에는 \0 (null) 값 포함  206에 \0
	int j = func(p1 === 100번지) : *p는 주소의 값을 표현 | 그냥 p는 주소값을 가짐 
}

int func (char p) { p1 : 100 받음 

	int cnt = 0;
    문자열 끝에는 \0 (null) 값 포함하므로 null값 찾을때까지 포인터를 증가하고 카운트 횟수 계산
    p 100번지의 값을 호출 *p 
    while(*p != "₩0"){ "₩0" === \0 역슬레쉬가 다르게 나타날때있음
    	cnt++;
        p++; 번지수를 증가 100 ~ 104: [2,0,0,2,\0]
    }

}
int a[4] = {0, 2, 4, 8} : a = 주소100 

int b[3]; : b = 주소200 

int *p; : p = 주소 반환 *p일때 값을 반환 

int sum = 0;

for(int i = 1 ; i < 4; i++){ i : 1~3
phase i = 1 ; 

p = a + i  :   p = 100 + 1 = 101
b[i-1] = *p - a[i-1]  : b[0] = 101번지 값 - a[0]값 = 2 - 0 = 2
sum += b[i-1]+a[i] : b[0] + a[1] = 2 + 2 += 4  : 0 + 4 

phase i = 2 ; 
p = a + i  :   p = 100 + 2 = 102
b[i-1] = *p - a[i-1]  : b[1] = 102번지 값 - a[1]값 =  4 - 2 = 2 
sum += b[i-1]+a[i] : b[1] + a[2] = 2 + 4 += 6 : 0 + 4 + 6 

phase i = 3 ; 
p = a + i  :   p = 100 + 3 = 103
b[i-1] = *p - a[i-1]  : b[2] = 103번지 값 - a[2]값 =  8 - 4 = 4  
sum += b[i-1]+a[i] : b[2] + a[3] = 4 + 8 += 12 : 0 + 4 + 6 + 12  
} 

22 

Python

str1 = "REMEMBER NOVEMBER"
str2 = str1[:3] + str1[12:16]
str3 = "R AND %s" %"STR"
print(str2 + str3)

str1[:3] 0 ~ 3 까지 : REM
str1[12:16] 12 ~ 16 : EMBE

str2 : REMEMBE
st2 + str3 : REMEMBE + R AND STR

REMEMBER AND STR



profile
React, React-Native https://darcyu83.netlify.app/

0개의 댓글