1학기 데이터베이스 과목의 중간고사 대비용 시험 공부한 내용입니다.
- 1장
데이터와 정보의 차이는?
- 데이터는 단순히 관찰, 측정하여 수집한 사실이나 값이다. - 정보는 의사 결정에 유용한 활용하도록 데이터를 체계적으로 조직화 한 결과물이다. - 데이터를 분석, 정리, 가공하면 정보가 된다.정보처리란?
- 데이터에서 정보 추출하는 과정이나 방법 - 데이터를 잘 활용하기 위함.정보 시스템이란?
- 조직 운영에 필요한 데이터를 수집하여 저장해 두었다가 필요할 때 유용한 정보를 만들어 주는 수단데이터베이스란?
데이터를 효율적으로 저장하고 관리하는 체계적인 저장소 특정조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장한 운영데이터의 집합데이터의 종류 4가지와 각 의미를 서술하시오.
통합 데이터: 최소 중복 저장 데이터: 컴퓨터 접근할 수 있는 매체에 저장 공유 데이터: 특정 조직 여러 사용자가 함께 소유하고 이용할 수 있는 공용데이터 운영 데이터: 조직의 주요기능 수행하기 위해 지속적으로 꼭 필요한 데이터형태 구조에 따라서 3가지로 분류하시오.
- 정해진 구조가 있는가 가 기준정형: 엑셀, 관계 데이터베이스 테이블/ 스키마에 맞게 저장
반정형: html,xml,json/ 구조에 대한 설명 함께 존재해서 구조 파악하는 파싱과정 필요
비정형: 단순 텍스트, 영상, 이미지, 음성
특성에 따라서 데이터를 분류하시오.
- 범주형: 명목형(비서열), 순서형(서열) - 수치형: 이산형, 연속형출처에 따라 데이터를 분류하시오.
1. 원천데이터: 데이터가 생성되는 단계, 가공 되지 않음, ex) 거래데이터, 웹사이트 방문자 행동 로그, IOT 센서 데이터 2. 원시데이터: 원천데이터가 저장되었으나 아직 정제되지 않은 단계로 전처리 필요 ex) 로그파일, IOT 센서 값, CSV 파일로 저장된 고객 구매 내역가공단계별로 데이터를 5가지로 분류하시오.
1. 정제데이터: 원시데이터에서 오류 수정, 중복제거, 오타 수정 등 거침 2. 변환데이터: 원본 데이터를 분석 및 머신러닝에 적합하도록 변환한 데이터, 스케일링, 인코딩, 차원축소 등 포함 3. 가공데이터: 특정 목적에 맞게 변형되어서 분석, 모델학습 최적화 4. 분석데이터: 데이터 분석, 모델 예측등의 결과로 도출된 데이터로 시각화, 통계분석, 예측값 포함 5. 통계 및 보고용 데이터: 최종 정리형 데이터로 보고서 작성, 시각화에 활용활용 기준을 중심으로 6가지로 데이터를 분류하시오.
1. 트랜잭션 데이터: 사용자 또는 시스템 작업단위를 나타낸 단위로 CRUD 작업 지속적 발생 2. 운영 데이터: 실시간 변동 데이터로 트랜잭션 처리가 목적임. 3. 로그 데이터: 시스템, 사용자활동 기록, 감사, 장애 분석 활용 4. 인덱스 데이터: 데이터 검색 성능 향상을 위해 추가적으로 생성되는 데이터 5. 데이터 스냅샷: 특정 시점의 데이터베이스 상태를 저장한 정적인 데이터 6. 데이터 웨어하우스 데이터: 여러 운영 시스템에서 수집해 통합한 분석 중심 데이터로 OLAP 용도로 사용2장
파일 시스템의 문제점 4가지를 쓰시오.
1. 중복 저장 : 저장공간 낭비, 일관성과 무결성 유지 어려움. 데이터를 통합해야지 해결됨 2. 데이터 파일 종속성: 파일 구조 변경시 응용프로그램도 변경해야 함. 3. 동시 공유, 보안, 회복 기능 부족 : 파일 사용 중 장애 발생하면 회복하기 쉽지 않음 4. 응용 프로그램 개발 쉽지 않음: 파일 접근 모든 관리 작업을 응용 프로그램이 담당해야 해서DBMS란?
조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 이에 대한 관리를 집중적으로 담당하는 소프트웨어 DBMS: 파일 시스템 문제 해결하기 위해 제시된 소프트웨어 DBMS는 응용 프로그램과 데이터베이스 사이에서 관리한다.DBMS의 주요 기능 3가지
정의 기능: 데이터 구조 정의하거나 수정할 수 있다 조작 기능: 데이터 삽입, 삭제, 수정, 검색하는 연산을 할 수 있다. 제어 기능: 데이터를 항상 정확하고 안전하게 유지할 수 있다. 데이터 조작 후에 생기는 문제들 방지DBMS가 제공하는 기능 6가지
1. 정보를 표현 할 수 있는 틀 2. 데이터의 공유 기능: 데이터 중복 제거, 일관성 문제 제거. 동시성 문제.(트랜잭션) 3. 데이터 무결성 유지 기능: 데이터 베이스 내의 데이터가 얼마나 정확한가를 의미 4. 데이터 독립성: 응용프로그램 짤 때 데이터 어떻게 저장되는지 몰라도 됨. 5. 효율적인 자원관리 기능: 많은 양 데이터 다루는데 효율적이고 효과적임. 주기억장치 불러오기 6. 데이터 보안성과 안정성 유지 기능: 보안성(사람으로부터), 안정성(장애,고장으로부터)데이터 시스템과 사용자 종류 4가지
1. 최종 사용자 : UI 사용하며 관련된 업무를 처리하는 사람 2. 응용프로그램 개발자 3. 데이터베이스 관리자 :DBA 4. DBMS 개발자DBMS 장점
- 데이터 중복 통제 - 데이터 독립성 확보 - 데이터 동시 공유 (동시 접근 제어 기술 보유) - 데이터 보안 향상 - 데이터 무결성 유지 - 표준화 - 장애 발생 시 회복 가능 - 응용 프로그램 개발 비용 줄어든다.DBMS 단점
- 비용 많이 듬 - 백업과 회복방법 복잡 - 중앙 관리로 인한 취약점DBMS 발전 과정
1. 네트워크/ 계층 -> 2. 관계 -> 3. 객체지향/객체관계 -> 4. NoSQL, NewSQL DBMS네트워크/계층 DBMS에 대해 설명하시오.
1-1) 네트워크: 그래프형태, 간선과 노드 형태로 만들어서 각 데이터를 각 칸에서 담고 있고, 요청과 key에 따라 서로 화살표로 주고받음 계층형 단접 모완하여 만듬, 1개의 자식노드는 여러개의 부모노드 소유 가능, 구조 복잡해지고 변경 어려움, IDS가 그 예시 1-2) 계층: 데이터를 노드화하고 트리형태로 계층화함. 자식노드는 부모노드 1개, 그래서 다대다 표현에 취약, IMS가 대표적인 예시관계 DBMS에 대해 설명하시오.
데이터를 테이블로 구성, 범용적으로 가장 많이 사용함, 열과 행을 바탕으로 한 관계 모델, 관계 개념으로 서로 연결해 사용 MYSQL, oracle, informix, access, mariaDB 등이 그 예시객체지향/ 객체관계 DBMS에 대해 설명하시오.
3-1) 객체지향: 객체지향 프로그래밍 적용, 객체단위로 관리, 멀티미디어 데이터 지원이 가능함, 표준화된 질의 없어서 특수분야에서만 사용됨 그 예시로 오투, 온투스 잼스톤 있음 3-2) 객체관계: 객체지향 DBMS 보완, 관계형 DB에 기반을 두되 풍부한 데이터 타입 추가 가능하도록 설계 그 예시로 오라클 있음NoSQL, NewSQL DBMS에 대해 설명하시오.
4-1) NoSQL: 관계형 데이터 단점 보완, 비정형 데이터 처리, 빅데이터, 분산처리, 클라우드 환경 유리,확장성 뛰어남. 일관성과 안정성 유지 위해 복잡한 기능은 포기, 미리 데이터 구조 정해두지 않는 유연성, 여러대의 컴퓨터에 데이터 분산하는 환경에서 사용 그 예시로 몽고DB, H베이스, 카산드라, 레디스, 네오포제이, 오리엔트 DB 4-2) NewSQL: 관계DBMS의 장점 + NoSQL의 확장성 및 유연성, 정형과 비정형 둘다 안정적이고 빠르게 처리 가능 그 예시로 구글 스패너, 볼트 DB, 누오 DB3장
데이터 베이스 시스템, 스키마, 인스턴스 에 대해 설명하시오.
데이터베이스 시스템: DBS 는 데이터 저장하고 관리해 조직에 필요한 정보 제공해주는 전체 시스템 스키마: 데이터베이스 저장되는 구조와 제약 조건 정의 인스턴스: 스키마에 따라 실제로 데잍터베이스에 저장된 값데이터 베이스에서 스키마에 따른 3가지 구조를 쓰시오.
외부 단계: 개별 사용자 관점 (새대주): 외부 스키마(서브 스키마): 사용자에게 필요한 데이터베이스 정의한 것 ,하나의 데이터베이스에 외부 스키마가 여러 개 존재 가능, 사용자에 맞게 일부만 보여줌 개념 단계: 조직 전체의 관점 (관리인): 개념 스키마(일반 스키마): 일부가 아닌 전체에 관심을 둠.전체 데이터베이스 논리적 구조 정의, 어떤 데이터 저장되는지, 관게, 제약조건, 보안정책, 접근권한 내부 단계: 물리적 저장 장치의 관점 (건설업체) 내부 스키마: 전체 데이터베이스 저장 장치에 실제로 저장되는 방법 정의, 레코드 구조나 접근경로, 필드 크기 등 물리적 저장구조 정의스키마 사이의 대응 관계와 그 목적을 쓰시오.
외부/개념 사상: 외부와 개념 사이 대응관계를 응용 인터페이스 라고 함
개념/내부 사상: 개념과 내부 사이 대응관계를 저장 인터페이스라고 함.
미리 저장된 사상 정보로 사용자가 원하는 데이터에 접근할수 있게함.
3단계 구조로 나누고, 스키마 유지해 대응관게 정의하는 궁극적인 목적 = 데이터 독립성
데이터 독립성 종류 2가지를 쓰시오.
데이터 독립성: 하위 변경하더라도 상위 스키마는 영향 안받음 논리적 데이터 독립성: 개념 스키마 변경되어도 외부/개념 사상만 정확히 수정하면, 외부 스키마는 영향 없음. 물리적 데이터 독립성: 내부 스키마 변경되어도 개념/내부 사상만 정확히 수정하면, 개념 스키마는 영향 없음.데이터 사전, 데이터 디렉터리, 사용자 데이터베이스 에 대해 서술하시오.
데이터 사전(시스템 데이터베이스, 시스템 카탈로그): 메타 데이터 유지하는 시스템 데이터베이스. 스키마, 사상정보, 제약조건 저장. DBMS 가 스스로 생성하고 유지함. 일반사용도 접근가능하지만 저장된 내용 검색만 가능 데이터 디렉터리: 데이터 사전에 있는 데이터에 접근하는데 필요한 위치정보 저장하는 시스템데이터베이스, 일반 사용자 접근 불가 사용자 데이터베이스: 사용자가 실제로 이용하는 데이터 저장하는 일반 데이터베이스데이터베이스 사용자를 이용목적에 따라 구분함.
DBA: DBMS 운영 관리, 정의어와 제어어 이용 end user: 데이터베이스 접근 및 조작(삽입,삭제,수정, 검색), 조작어 이용 응용프로그래머: 데이터 언어 삽입해 응용프로그램 작성, 조작어 이용DBA의 주요 업무
- 데이터베이스 구성요소 선정 : 사용자 요구사항 분석해 구성할 데이터 결정 - 데이터베이스 스키마 정의: 데이터베이스 정의어로 스키마 설계, - 물리적 저장구조와(레코드) 제약조건 정의 - 무결성 유지를 위한 제약조건 정의: ex) 중복방지 - 보안 및 접근권한 정책 결정 - 백업 및 회복기법 정의 - 시스템 데이터 베이스 관리 - 시스템 성능 감시 및 성능 분석, 자원 배분 등으로 성능 감시 - 데이터베이스 재구성: 사용자 요구사항이나 형태 달라지면 그에 맞게 재구성데이터 언어 종류 3가지
데이터 정의어(DDL): 스키마 정의하거나 수정, 삭제 위해 사용 데이터 조작어(DML): 데이터의 삽입,삭제,수정, 검색 등의 처리 요구 위해 사용 절차적 데이터 조작어: 어떤 데이터를 얻으려면 어떻게 처리해야하는지도 설명 비절차적 데이터 조작어(선언적 언어): 사용자가 어떤 데이터를 원하는지만 설명 데이터 제어어(DCL): 내부적으로 필요한 규칙이나 기법 정의하기 위해 사용. 무결성,보안,회복,동시성 제어를 위해 사용데이터베이스 관리 시스템의 주요 구성 요소를 쓰시오.
질의 처리기: 사용자 데이터 요구 해석해 처리, 각종 컴파일러들과 런타임 데이터베이스 처리기, 트랜잭션 관리자 등을 포함 저장 데이터 관리자: 디스크에 저장된 데이터베이스와 데이터 사전 관리하고 접근 DDL 컴파일러: 데이터 정의어로 작성된 스키마 정의 해석하여 새로운 데이터베이스 구축시 스키마 정의를 데이터 사전에 저장 DML 프리 컴파일러: 응용 프로그램에 삽입된 조작어를 추출해 DML 컴파일러에 전달 DML 컴파일러: 데이터 처리(삽입,삭제,수정,검색) 요구 분석하고 데이터베이스 처리기가 이해할 수 있게 해석함. 런타임 데이터베이스 처리기: DML 컴파일러에서 전달받은 데이터 처리 요구를 데이터베이스에서 실제로 실행함 트랜잭션 관리자: 데이터 베이스에 접근하는 과정에서 접근권한, 유효성,위반 여부 확인.4강
데이터 모델링이란?
현실세계에 존재하는 데이터를 컴퓨터 세계의 DB로 옮기는 변환 과정. 데이터베이스 설계의 핵심 과정2단계 데이터 모델링 과정을 쓰시오.
현실 세계 -- 개념적 모델링 --> 개념 세계 -- 논리적 모델링 --> 컴퓨터 세계데이터 모델을 분류하고 정의하시오.
데이터 모델: 데이터 모델링의 결과물을 표현하는 도구개념적 데이터 모델 (ex 개체-관계 모델) : 현실세계를 개념적으로 모델링해서 데이터 베이스의 개념적 도구로 표현하는 구조
논리적 데이터 모델 (ex 관계 데이터 모델) : 개념적 도구를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구
- 데이터가 논리적으로 정리되어 추상적이지만 DB에 저장할 수 있음, 구조화는 되었지만 성능이나 저장방식, 인덱스가 고려 안됨.
- 이제 물리적 모델링을 추가로 거쳐 DBMS, 자료구조, 인덱스 여부 등을 정함
- E-R 다이어그램으로 표현된 개념적 구조를 DB에 저장할 형태로 표현한 논리적 구조(DB 스키마), 사용자가 생각하는 데이터베이스의 모습이나 구조
데이터 모델 설계란?
개념적 모델 + 논리적 데이터 모델 설계즉 데이터 모델링이 구조를 설계하는 과정이라면 데이터 모델은 데이터 구조를 기술한 모델이나 명세
데이터 모델의 3요소
데이터 구조: 데이터를 어떻게 조직하고 표현할 것인가 (테이블, 열, 행, 속성, 관계), 개념적 데이터 모델에서는 개념적 구조(어떤 요소로 이루어져있는가), 논리적 데이터 모델에서는 논리적 구조(어떤 모습으로 저장할 것인가), 정적임 연산: 데이터에 어떤 처리를 수행할 수 있는가 (검색,삽입,수정,삭제), 개념세계나 컴퓨터 세계에서 실제 표현된 값 처리하여 동적임 제약조건: 데이터 일관성, 무결성, 정확성을 유지하기 위한 규칙 (기본키, 외래키, null처리 ,unique 등), 구조적 측면의 제약 사항, 연산적용시 허용하는 의미적 측면 의 제약 사항, 무결성 위함개체관계모델과 개체관계 다이어그램이란?
게체-관계 모델(E-R 모델): 개체와 개체 관계 이용해 개념적 구조로 표현한다. 개체,속성,관계가 핵심이다. 개체-관계 다이어그램(E-R 다이어그램): 그림으로 E-R 모델 표현 사각형: 개체, 마름모: 관계, 타원: 속성, 링크(연결선): 각 요소 연결, 레이블: 링크 위의 레이블 달아서 추가적인 관계 표시(n:m)개체란?
- 사람, 사물처럼 현실세계에서 독립적으로 존재하며 식별 가능한 대상 - 저장할 목적이 있는 객체 - 구조화된 데이터 중심 두고 있는 개념 - 구별되는 이름과 하나 이상의 속성을 가지고 있음 - 파일구조의 레코드와 대응개체 타입, 인스턴스, 집합, 기본요건 이 무엇인지 서술하시오.
- 개체 타입: 고유 이름과 속성으로 개체 저장함. 파일 구조의 레코드 타입에 대응됨. (테이블) - 개체 인스턴스: 개체 구성하는 속성이 실제값 가져 실체화 됨. 개체 어커런스라고 하며 레코드 인스턴스에 대응됨. (행 하나) - 개체 집합: 특정 개체 타입에 대한 개체 인스턴스 모아 놓은 것 (테이블안의 행 모음 ) - 개체 기본 요건: 한개의 entity는 2개 이상의 인스턴스 집합과 2개 이상의 속성을 가진다. (행, 열 2개 이상)속성이란?
- 개체나 관계가 가지고 있는 고유한 특성 - 의미 있는 데이터의 가장 작은 논리적 단위 - 파일 구조의 필드와 대응됨 - 속성의 구분과 종류속성값을 구분하고 그림을 그림에서 어떻게 표현되는가.
- 단일값 vs 다중 값: 값을 하나만 가지는지 여러 개 가지는지, 여러개면 이중타원으로 표현 - 단순 속성 vs 복합 속성: 의미를 더 이상 분해할 수 있는지 없는지 - 유도 속성인가?: 다른 속성의 값에서 유도되어 결정되는지,엑셀 수식처럼, 점선으로 표현함 - 널 속성인가?: 널 값이 허용되는가 - 키 속성인가?: 각 개체 인스턴스 식별하는 데 사용되는 속성, 모든 개체 인스턴스의 키 속성값이 다름. 둘 이상의 속성들로 구성되기도 함. 밑줄로 표현관계란?
관계 유형에 대해관계의 유형과 참여특성에 따라 분류하시오.
- 관계의 유형에 따른 구분: 이항 관계(개체 타입 2개가 맺는 관계), 삼항 관계(개체 타입 3개가 맺는 관계), 순환 관계(개체타입 1개가 자기 자신과 맺는 관계) - 관계의 유형(매핑 카디널리티: 관계 맺는 두 개체 집합에서 연관성을 맺고 있는 인스턴스 개수): 1대1, 1대다, 다대다 - 관계의 참여 특성: 필수적 참여(이중선) vs 선택적 참여관계의 종속성에 대해 서술하시오. .
- 일반적으로 강한 게체: 약한 개체는 1:n 관계임 - 약한 개체는 강한 개체와의 관계에 필수적으로 참여 - 약한 개체는 강한개체의 키를 포함하여 키를 구성 - 약한 개체는 이중 사각형으로 표현하며, 약한개체와 강한 개체의 관계는 이중 마름모로 표현 - 즉 개체 B가 단독으로 존재할 수 없고, A가 필효한 경우 B가 A에 종속되어 있다고 본다. = 존재종속논리적 데이터 모델의 종류 3가지
- 관계 데이터 모델: 일반적으로 많이 사용되며 2차원 테이블 형태 - 계층 데이터 모델: 트리 형태, 루트 개체 존재하며 사이클 없음, 상하관계 성립, 부모 자식은 다대다 안됨, 다대다 표현 안되고, 모델링 어렵고, 삽입수정삭제검색이 쉽지 않음 - 네트워크 데이터 모델: 그래프 형태로 1대 다 관계만 허용됨, 관계를 여러개 정의할 수 없어 이름으로 구분, 이것도 다대다 안되고 구조 복잡하고 십입수정삭제검색 어려움 , 오너 -> 멤버 방향으로 화살표 성립5장
관계 데이터 모델이란?
개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델릴레이션, 속성, 튜플, 도메인, null, 차수, 카디널리티 정의에 대해 쓰시오.
릴레이션: 하나의 개체에 관한 데이터를 2차원 테이블 구조로 저장한 것으로 파일에 대응, 관계 데이터 모델에서 수학적 개념이자 실제로 테이블로 구현됨 구조 속성: 열, 애트리뷰트로 필드에 대응 튜플: 행으로 레코드에 대응 도메인: 하나의 속성이 가질 수 있는 모든 값의 집합, 허용된 값만 입력이 가능하기에 속성 값을 입력 및 수정할 때 적합성 판단 기준이 됨. 속성의 특성을 고려한 데이터 타입으로 정의, 더이상 분해 할 수 없는 원자값만 속성으로 사용한다. null: 아직 모르거나 해당되는 값 없음 차수: 하나의 릴레이션에서 속성의 전체 개수 카디널리티: 하나의 릴레이션에서 튜플의 전체 개수릴레이션 스키마, 릴레이션 인스턴스, 데이터베이스 스키마, 데이터베이스 인스턴스를 정의하시오.
릴레이션 스키마: 릴레이션의 논리적 구조로 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의된다. 릴레이션 내포 라고도 하고 자주 변하지 않는 정적이다. 대충 표 맨 위행 헤드부분릴레이션 인스턴스: 어느 한 시점에 릴레이션에 존재하는 튜플들의 집합. 대충 표 2번째 행부터 바디부분
릴레이션 외연이라고도 하며 튜플의 삽입, 삭제, 수정이 발생하는 동적인 특징을 가진다.
데이터베이스 스키마: 데이터베이스의 전체 구조, 데이터베이스를 구성하는 릴레이션 스키마의 모음
데이터베이스 인스턴스: 어느 한 시점에서 데이터베이스에 저장된 데이터 내용의 전체 집합 의미,
데이터베이스를 궛ㅇ하는 모든 릴레이션 인스턴스의 모음
릴레이션의 특징 4자리를 쓰시오.
튜플의 유일성: 한 릴레이션에서 동일한 튜플 존재 불가, 튜플의 무순서: 하나의 릴레이션에서 튜플의 순서는 의미가 없다. 속성의 무순서: 하나의 릴레이션에서 속성 사이의 순서는 무의미 하다. 속성의 원자성: 속성 값으로 원자 값만 사용할 수 있다. 즉 다중값을 지니는 직업 속성을 포함하고 있으면 관계 데이터 모델의 릴레이션으로 적합하지 않다.
키와 키의 종류 5가지에 대해 정의하시오.
키: 릴레이션에서 튜플을 유일하게 구별하는 속성 또는 속성들의 집합 슈퍼키: 유일성을 만족하는 속성 또는 속성들의 집합. 최소성이 없어서 유일성 만족하는 속성 뒤에 아무 추가 속성 붙여도 슈퍼키 됨. 후보키: 유일성과 최소성을 만족하는 속성 또는 속성들의 집합. 최소성 있어서 중복허용하지 않음. 즉 추가속성 붙이는 거 안됨 기본키: 후보 키 중에서 기본적으로 사용하기 위해 선택한 키 기본키 선택 고려사항: 널 값 안됨, 변경 적어야 함, 단순해야 함. 대체키: 기본키가 아닌 후보키 외래키: 다른 릴레이션의 기본키 참조하는 속성 또는 속성들의 집합, 참조하는 릴레이션: 외래키를 가진 릴레이션 , 참조되는 릴레이션: 외래키가 참조하는 기본키를 가진 릴레이션 외래키 속성과 그것이 참조하는 기본키 속성의 이름은 달라도 되지만 도메인은 같아야 함. 하나의 릴레이션에 외래키 여러개 존재 가능, 외래키 기본키로 사용 가능, 같은 릴레이션 기본키 참조하는 외래키도 가능키의 특성은?
유일성: 하나의 릴레이션에서 모든 튜플은 서로 다른 키 값을 가져야 함 최소성: 꼭 필요한 최소한의 속성들로만 키를 구성함.무결성 제약조건에 대해 서술하고 그 종류 2가지를 쓰시오.
개체 무결성 제약조건: 기본키 구성하는 모든 속성은 널 값 불가 참조 무결성 제약조건: 외래키는 참조할 수 없는 값 불가(널 값은 괜찮음 )6장
데이터모델의 구성요소 3가지를 쓰시오.
데이터구조 + 연산 + 제약조건관계 데이터 연산이란?
관계 데이터 모델의 연산으로 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것 관계 대수(절차언어) 와 관계 해석(비절차언어)로 구성관계 대수와 관계 해석 정의를 쓰시오.
관계 대수란? 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술관계 해석이란?
원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술
관계 대수와 해석의 역할을 쓰시오.
- 데이터 언어의 유용성 검증 기준: 상용화된 모든 언어들은 관계적으로 완벽하다는 유용성을 검증 받음 - 관계 대수나 관계 해석으로 기술할 수 있는 모든 질의를 기술할 수 있는 데이터 언어를 거쳐서 관계적으로 완전하다고 판단관계 대수의 개념을 쓰시오.
- 절차 언어: 원하는 결과 얻기 위해 릴레이션 처리과정 순서대로 기술하는 언어 - 릴레이션 처리하는 연산자들 모음으로 대표 연산자 8개이다. 일반 집합 연산자와 순수 관계 연산자로 분류한다. - 폐쇄 특성 : 피연산자도 릴레이션이며 결과도 릴레이션이다.관계 대수의 연산자 8개 쓰시오.
일반 집합 연산자: 합집합 U, 교집합 ∩, 차집합 - , 카티션 프로덕트 x 순수 관계 연산자: 셀렉트 σ, 프로젝트 π , 조인 ▷◁, 디비전 ÷일반집합 연산자의 특징은?
- 피 연산자가 2개 필요. 2개의 릴레이션을 대상으로 연산을 수행한다. - 합집합, 교집합, 차집합은 두 릴레이션이 합병 가능해야 함. 합병 가능 조건: 두 릴레이션의 속성(차수) 개수가 같아야 함. 두 릴레이션에서 서로 대응되는 속성의 도메인이 같아야 함. 단, 도메인이 같다면 속성의 이름은 달라도 됨각 연산자 8개 특징에 대해 설명하시오.
합집합 U : 차수는 동일하며, 카디널리티는 R과 S를 더한 카디널리티 이하, 교환법칙, 결합법칙 성립교집합 ∩: 차수는 동일하며, 카디널리티는 R과 S의 어떤 카디널리티보다도 이하임. 교환, 결합법칙 성립
차집합 - : 차수는 동일하며, 카디널리티는 R-s 기준 R의 카디닐러티 이하임. 교환, 결합법칙 X
카티션 프로덕트 X: 차수는 R과 S 더한 것과 같음. 카디너리티는 R과 S의 카디널리티 곱한것과 같음. 교환 결합법칙 성립
셀렉트 σ : 검색하듯이 속성 조건 만족하는 튜플만 선택해 결과 릴레이션 구성, 수편정 결합, where 씀. 조건식을 비교식, 프레디킷 이라고도 함.
속성과 상수의 비교나 속성들간의 비교로 표현, 비교연산자와 논리연산자 이용해 작성, 하나의 릴레이션 대상임
σ 등급='gold' ^ 적립금 >= 2000 (고객) 혹은 고객 where 등급='gold' and 적립금 >= 2000 으로 표현
프로젝트 π: 릴레이션에서 속성 값으로 결과 릴레이션 구성, 수직적 연산자, 하나의 릴레이션 대상임,
π등급,고객이름(고객) or 고객[등급,고객이름] 이런식으로 표현. 동일한 튜플은 중복되지 않고 한번만 나타남.
조인 ▷◁: 조인 속성(두 릴레이션이 공통으로 가지는 속성)의 값이 같은 튜플만 연결해 결과 릴레이션을 구성함. 동등 조인이라고도 함.
조인 속성은 각 어느 릴레이션의 소속인지 구별하기 위해 릴레이션.속성이름 형식으로 일단 2중으로 표기한다.
조인 종류 3가지에 대해 쓰시오.
세타조인 𝜽 : 비교연산자 사용, 비교해서 참일때 조인 . 차수는 두 릴레이션 차수 더한 것과 같음, =도 사용 가능. 그래서 이퀄만 쓰는 세타조인이 동등조인, 중복있음동등조인 = : 동등연산자 사용, 특정 컬럼 값 같을때만 조인 , 중복 있음
자연조인: 동일한 이름 가진 컬럼들 자동으로 찾아서 조인한다. 동등조인의 자동화 버전으로 공통속성 자동 매칭하고 중복을 제공한다.
디비전이란?
디비전 ÷ : 릴레이션1 ÷ 릴레이션2 로 릴레이션2의 모든 투플과 관련이 있는 릴레이션1의 투플과 결과 릴레이션을 구성.
단 릴레이션1이 릴레이션2의 모든 속성을 포함하고 있어야(도메인이 같아야) 가능하다.
그러니까 A ÷ B이면 B속성들을 가지는 것들을 추출하는데 이제 거기서 B는 제외하고 나오는 느낌
세미조인이란?
세미조인 ⋉ : A테이블의 행 중에서 B테이블의 조건에 맞는 값이 존재하는 A의 행만 가져온다. B는 안가져온다. 그래서 필터링한것처럼 보인다. 프로젝트 연산을 수행한 릴레이션을 이용하는 조인. 릴레이션2를 조인 속성으로 프로젝트 연산 후 릴레이션1에 자연조인한 결과임. 불필요한 속성 미리 제거해 연산 비용 줄이며 교환법칙 성립 안함.외부조인이란?
외부조인: 조인조건이 맞지 않아도 누락되지 않고, NULL 값을 채워서 결과를 보여줌. Left 외부 조인 ⟕ : 왼쪽 A를 기준으로 매칭이 없으면 오른쪽 B는 null right 외부 조인 ⟖ : 오른쪽 B를 기준으로 매칭이 없으면 왼쪽 A는 null full 외부 조인 ⟗ : 양쪽 다 포함해서 매칭 안되면 NULL로 채움7장
SQL 분류 3가지
DDL: 테이블 생성, 변경, 삭제 DML: 테이블에 데이터 삽입하거나 수정,삭제,검색 DCL: 보안을 위해 데이터에 대한 접근 및 사용권한을 부여하거나 취소테이블 생성하는 구문을 모든 인자를 함께 쓰시오.
CREATE TABLE 테이블이름( 속성_이름 데이터_타입 [NOT NULL] [DEFAULT 기본_값] [PRIMARY KEY (속성_리스트)] [UNIQUE (속성_리스트)] [FOREIGN KEY (속성_리스트) REFERENCES 테이블_이름(속성_리스트)] [ON DELETE 옵션] [ON UPDATE 옵션] [CONSTRAINT 이름] [CHECK(조건)] ); //SQL 은 대소문자 구분 없고, 세미콜론으로 문장의 끝을 표시한다. 또한 [] 는 생략가능함 기본, 대체, 외래, 데이터무결성 순으로 생각하면 됨. 다만 문자열이나 날짜는 작은따옴표로 묶고 대소문자를 구분함.PRIMARY KEY와 UNIQUE KEY의 중복, NULL 처리 여부를 쓰시오.
PRIMARY KEY는 중복과 NULL이 모두 불가하지만 UNIQUE는 중복이 불가하고 NULL은 허용된다.FOREIGN KEY의 옵션을 쓰시오.
크게 ON DELETE와 ON UPDATE 옵션으로 나눌 수 있고 아래 5가지 중에서 고르는 거인듯.CASCADE: 참조된 값이 삭제/변경되면 관련 행 자동 삭제/변경됨
SET NULL: 참조된 값이 삭제/변경되면 외래 키 값을 NULL로 바꿈
SET DEFAULT: 참조된 값이 삭제/ 변경 되면 외래 키 값을 기본값으로 바꿈
NO ACTION: 당장은 아무것도 안함 ->하지만 위반시 에러
RESTIRCT: 삭제나 변경을 바로 막음 -> 위반시 에러
테이블을 변경하는 구문을 쓰시오. (속성추가, 속성삭제, 제약조건 추가, 제약조건 삭제)
ALTER TABLE 테이블_이름 ADD 속성_이름 데이터_타입 [NOT NULL] [DEFAULT 기본_값]; DROP COLUMN 속성_이름; ADD CONSTRAINT 제약조건_이름 제약조건_내용; DROP CONSTRAINT 제약조건_이름;테이블을 삭제하는 구문을 쓰시오.
DROP TABLE 테이블_이름'CS 내용 요약, 지식' 카테고리의 다른 글
컴퓨터구조 시험 대비 정리| 백지 문답 식 핵심 요약 (2) | 2025.05.02 |
---|---|
Docker, 쿠버네티스 개념 정리 (4) | 2024.10.08 |
데이터 통신 기초 - 3. 물리 계층 (0) | 2024.04.06 |
데이터 통신 기초 - 2. 네트워크 모델 (0) | 2024.03.31 |
데이터 통신 기초 - 1. Overview (0) | 2024.03.31 |