1. SQL 응용
1-1. SQL 개념
: RDB를 지원하는 언어
- DDL(Data Define Language, 데이터 정의어)
- CREATE
- ALTER
- 테이블에 정의된 내용을 수정할 때 사용. view는 수정 불가
- 컬럼 추가
- 제약조건 추가
- 컬럼 수정
- 컬럼 삭제
- DROP
- 데이터베이스 객체를 삭제하는 구문
- CASCADE: 제거할 요소를 참조하는 다른 모든 개체를 함께 제거
- DML(Data Manipulation Language, 데이터 조작어)
- SELECT(DISTINCT옵션 : 중복 데이터 한개만 출력)
- sfwGHO: sf영화는 왠지 혼자 보고 싶다.
- select 속성명
- from 테이블명
- where 조건
- Group by 속성명
- Having groupby에 대한 조건
- Order 속성명[asc:오름차순/desc:내림차순]
- INSERT
- 테이블에 새로운 튜플을 삽입
- UPDATE
- 테이블 튜플 내용을 갱신
- DELETE
- 테이블에 튜플을 삭제
- SELECT(DISTINCT옵션 : 중복 데이터 한개만 출력)
- DCL(Data Control Language, 데이터 제어어)
- COMMIT
- 삽입한 데이터를 영구히 저장한다.
- ROLLBACK
- COMMIT한 데이터를 제외하고 메모리에 있는 데이터를 날린다.
- GRANT
- 권한을 준다.
- REVOKE
- 권한을 뺏는다.
- COMMIT
2. 논리 데이터베이스 설계
2-1. 데이터베이스 설계
데이터베이스 설계시 고려사항
- 무결성: DML 연산후에도 제약조건 항상 만족(정확)
- 일관성
- 회복: 장애 발생시 발생 직전의 상태로 복구 가능
- 보안
- 효율성
- 확장성
2-2. 개념적(Conceptual), 논리적(Logical), 물리적 설계(Physical)
데이터 모델
:현실세계의 데이터 구조를 컴퓨터 세계의 데이터 구조로 기술하는 개념적 도구
구성요소
- 개체(Entity): DB에 표현하려는 것. 개념이나 정보
- 속성(Attribute): 데이터의 가장 작은 논리적 단위
- 관계(Relationship): 개체간의 관계
표시할 요소
- 구조(Structure): 논리적으로 표현된 개체 타입들간의 관계로서 데이터 구조 및 성질
- 연산(Operation): DB에 저장된 실제 데이터를 처리하는 작업에 대한 명세
- 제약조건(Constraint): 실제 데이터의 논리적인 제약조건
2-3. E-R Diagram
- P.Chen이 제안
- 개체집합 - 직사각형
- 관계집합 - 마름모꼴
- 속성 - 원
- 링크 - 직선
2-4. 관계형 데이터 구조(암기)
- 1970년 코드에 의해 제안
- 개체 릴레이션, 관계 릴레이션
- 릴레이션 특징
- 모든 튜플은 서로 다른 값을 갖는다.
- 각 속성은 릴레이션 내에서 유일한 이름을 가지며, 속성의 순서는 의미가 없다.
- 하나의 릴레이션에서 튜플의 순서는 없다.
- 모든 속성 값은 원자값이다.
- 속성 개수: 차수(Degree)
- 튜플의 개수: 카디널리티(Cardinality)
- 속성의 값이 들어갈 수 있는 범위: 도메인
2-5. 데이터베이스 키(암기)
널 값(Null Value)
- 아직 알려지지 않거나 모르는 값
- 이론적으로 아무것도 없는 특수한 데이터 의미
- 정보 부재를 나타내기 위해 사용
- 후보키(Condidate Key): 개체들을 고유하게 식별할 수 있는 속성
- 슈퍼키(Super Key): 한 개 이상의 속성들의 집합으로 구성된 키(유일성 만족, 최소성 불만족)
- 외래키(Foreign Key): 다른 테이블의 기본키로 사용되는 속성
- 대체키(Alternate Key): 후보키 중에서 대표로 선정된 키
2-6. 무결성
: 데이터가 정확해야 한다.
- 개체 무결성: 한 릴레이션의 기본키를 구성하는 어떠한 속성값도 널 값이나 중복값을 가질 수 없다.
- 도메인 무결성
- 참조 무결성: 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 같아야 한다.
2-7. Trigger
DML(Insert, Update, Delete) 일어날 때마다 무결성 조건 바로 검증
2-8. 관계대수 관계해석(암기)
관계대수(how)
- 절차적인 언어
- 연산자, 피연산자, 결과도 모두 릴레이션
- 순수관계연산자
- Select(시그마): 선택 조건을 만족하는 튜플의 부분집합
- Project(n): 속성 값 추출
- Join: 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합친다.
- Division(나누기): 나누는 릴레이션의 모든 튜플과 연관되어 있는 튜플 중 나누는 속성을 제외한다.
- 일반집합연산자
- Union(합집합)
- Intersection(교집합)
- Difference(차집합)
- Cartensian Product(교차곱)
관계해석(what)
- 술어해석
- 비절차적 언어
- 관계대수로 표현한 식은 관계해석으로 표현 가능
- 질의어로 표현
- 튜플 관계해석, 도메인 관계해석
2-9. 정규화(암기)
- 1NF(제1정규형): 릴레이션에 속한 모든 도메인이 원자값으로 되어있는 정규형
- 2NF(제2정규형): R이 1NF이고 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수 종속을 만족하는 정규형 : 부분함수 종속 제거
- 3NF(제3정규형): R이 2NF이고 기본키가 아닌 모든 속성이 기본키에 대하여 이행적 종속을 제거한 정규형
- BCNF(Bayce_Codd Normal Form): 모든 결정자가 후보키, 결정자이면서 후보키가 아닌 것 제거
3.물리데이터베이스 설계
3-1. 트랜잭션 분석
: 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
특성
- Atomicity(원자성) all or nothing: 버스표 예매
- Commit
- Rollback
- Consistency(일관성): 계좌이체
- Isolation(독립성): 쇼핑몰 장바구니
- Durability(영속성): 데이터베이스 저장
3-2. CRUD 분석
생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete) 매트릭스를 작성하여 분석
3-3. 인덱스 설계
인덱스(Index) <키값, 포인트>
- 물리적 구조에 빠르게 접근하는 방법 제공
- 삽입삭제가 수시로 일어나는 경우에는 인덱스 개수를 최소로
- 테이블의 레코드에 대한 엑세스를 빠르게 수행할 수 있다.
3-4. View 설계
- 장점
- 논리적 데이터 독립성
- 관리가 간단
- 보안 제공
- 단점
- 인덱스 가지지 못한다.
- 변경 못한다. (삭제 후 재생성)
- 삽입, 삭제, 갱신에 제약이 있다.
3-5. 분산데이터베이스 설계
목표(암기)
- 위치 투명성(Location Transparency)
- 어디에 엑세스 하는지 알필요 없다.
- 중복 투명성(Replication Transparency)
- 여러 데이터가 있더라도 사용자는 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 모든 데이터에 작업을 수행한다.
- 병행 투명성(Concurrency Transparency)
- 트랜잭션들이 동시에 실현되더라도 결과는 영향을 받지 않는다.
- 장애투명성(Failure Transparency)
- 장애가 일어나도 트랜잭션을 정확하게 처리한다.
3-6. 데이터베이스 보안/암호화
암호화(Encryprtion) (암기)
- 개인키 암호화 기법
- DES 기법
- 공중키 암호화 기법
- 평문으로 암호문 만들기 가능, 해독은 비밀 유지
복호화
4. 시스템카탈로그/데이터사전(Dat Dictionary)
시스템 카탈로그: 시스템 자차에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
데이터 사전
- 데이터베이스 객체정보
- 사용자 정보
- 테이블의 무결성 제약조건 정보
- 함수, 트리거 등
'자격증 > 정보처리기사 인강 - 필기' 카테고리의 다른 글
제5과목 정보시스템 구축 관리 (0) | 2024.05.17 |
---|---|
제4과목 프로그래밍 언어 활용 (0) | 2024.05.17 |
제2과목 소프트웨어 개발 (0) | 2024.05.17 |
제1과목 소프트웨어 설계 (0) | 2024.04.16 |