[ DB & SQL(RDBMS, NoSQL) 면접 준비 ] DB/SQL 면접 준비 03
◇ 데이터베이스(DB)란?
∇ 데이터베이스란, "특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임" 입니다.
== [여러 사람이 공유하고 사용할 목적으로 통합-관리되는 정보의 집합으로,
논리적으로 연관된 데이터를 체계적으로 저장하고 관리하는 시스템.]
※ DBMS(DataBase Management System) : 데이터베이스를 관리하는 시스템.
◇ 데이터베이스(DB)의 구성요소.
※ 데이터베이스는 크게 '논리적 구성요소'와 '시스템적 구성요소'로 나눌 수 있습니다.
◎ 논리적 구성요소.
1. 개체 ( Entity )
- 데이터로 표현하고자 하는 현실 세계의 대상체
- 하나 이상의 속성으로 구성
- 독립 개체 : 다른 개체에 종속되지 않고 독립적으로 존재 가능.
- 종속 개체 : 다른 개체의 존재에 의존적인 개체.
2. 속성( Attribute )
- 개체에 관한 정보를 저장하는 가장 작은 논리적 단위.
- 개체의 특성 및 상태를 기술.
※ 속성의 종류
- 단순 속성: 더 이상 나눌 수 없는 속성.
- 복합 속성 : 2개 이상의 의미 있는 값으로 분해 가능한 속성.
ex) 책의 속성 - 서명, 저자, 가격, 출판사
3. 관계( Relationship )
- 2개 이상의 개체 간 연관성
- 주로 동사의 형태로 표현.
※ 관계의 유형.
◎ 시스템적 구성요소.
1. 데이터베이스 관리 시스템(DBMS)
- 데이터베이스를 생성, 관리, 운영하는 소프트웨어
- 데이터의 저장, 검색, 업데이트 담당.
2. 주요 DBMS 구성 요소.
- DDL 컴파일러 : 스키마의 정의를 메타데이터로 처리.
- 질의어 처리기: 사용자 질의문 처리
- DML 컴파일러 : 데이터 조작 명령어 처리
- 런타임 데이터베이스 처리기 : 데이터베이스 접근 관리
- 트랜잭션 관리 : 데이터 무결성과 권한 제어.
◇ 데이터베이스(DB)의 특징.
◎ 독립성 [ Indepencence ]
√ '데이터베이스'는 데이터를 사용하는 응용 프로그램과는 독립적인 상태로 데이터를 저장하고 관리합니다. !
√ "물리적 독립성" : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 새롭게 추가하더라도
관련된 응용프로그램을 수정할 필요가 없습니다.
√ "논리적 독립성" : 데이터베이스는 논리적인 구조로 다양한 응용프로그램의 논리적 요구를 만족 가능.
◎ 무결성 [ Integrity ]
√ '데이터베이스'는 다양한 제약조건 및 기능을 통해 데이터의 무결성을 유지합니다.
◎ 보안성 [ Security]
√ '데이터베이스'는 계정 및 권한 관리(인가된 사용자만 자원에 접근 가능)를 통해 데이터들의 보안을 유지합니다.
◎ 일관성 [ Consistency]
√ '데이터베이스'는 다양한 제약조건을 통해 데이터를 일관되게 유지합니다.
√ 어떤 하나의 데이터만 변경했을 경우, 발생할 수 있는 데이터의 불일치성을 배제할 수 있고,
작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제 가능.
◎ 중복 최소화[ Minimum Duplication]
√ '데이터베이스'는 데이터를 통합해서 관리함으로써 데이터의 중복을 최소화합니다.
◇ 데이터 무결성이란?
◎ 데이터에 결합이 없는 상태, 데이터를 정확하고 유효하게 유지하는 것을 말합니다.
== 데이터의 정확성, 완전성, 일관성, 유효성을 보장하는 개념과 프로세스.
== 데이터베이스에 저장된 데이터 값이 현실 세계의 실제 값과 일치하는 정확성.
◎ 데이터의 정확성과 일관성을 유지하고 보증하기 위해,
데이터베이스에 삽입, 삭제, 수정, 연산이 일어나도 무결성 제약조건은 지켜져야 합니다.
◆ 데이터 무결성의 주요 특징.
1. 정확성.
- 데이터에 중복이나 누락이 없는 상태.
- 데이터가 의도된 값을 정확하게 반영.
2. 일관성.
- 원인과 결과의 의미가 연속적으로 보장되어 변하지 않는 상태.
- 데이터 간의 논리적 관계가 유지됨.
3. 유효성.
- 사용자로부터 입력받은 값이 정확한 값만 허용되도록 함.
◆ 데이터 무결성의 중요성.
- 데이터 무결성을 유지하지 않으면,
- 중복된 데이터 존재.
- 부모-자식 데이터 간 논리적 관계 붕괴
- 잦은 시스템 에러
- 높은 재개발 비용.
◇ 데이터 무결성 제한의 유형.
■ 개체 무결성 ( Entity Integrity )
- 모든 테이블은 기본 키(Primary Key)를 가져야 하며,
기본 키로 선택된 열은 고유하고 빈 값은 허용되지 않습니다.
- 기본키는 고유한 값을 가지며, NULL 값 불가.
■ 참조 무결성 ( Referential Integrity )
- 모든 외래 키 값은 Null이거나, 참조 릴레이션의 기본키 값과 동일해야 합니다.
- 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없습니다.
- 테이블 간의 참조 관계에서 데이터의 일관성을 보장합니다.
■ 범위(도메인) 무결성 ( Domain Integrity )
- 정의된 범위에서 관계형 데이터베이스의 모든 열이 선언되어야 합니다.
- 각 필드(열)의 값이 정의된 도메인(유효한 값의 집합)에 속해야 합니다.
- 데이터 타입, 형식, 범위, NULL 여부 등을 관리.
■ 키 무결성 ( Key Integrity )
- 릴레이션에는 최소한 하나의 키가 존재해야 합니다.
■ null 무결성 ( Null Integrity)
- 특정 속성은 null 값을 가질 수 없습니다.
- ex) 유저 아이디와 같은 중요한 정보는 스키마를 정의할 때 null을 가질 수 없도록 미리 정의합니다.
■ 고유 무결성 ( Unique Integrity )
- 특정 속성값은 서로 달라야 합니다. ( 고유한 값을 가져야 함 )
- 각 튜플에서 하나의 속성값은 중복된 값이 없는 각각 서로 다른 값을 가져야 합니다.
- ex ) 이름, 나이, 사는 곳과 같은 속성은 서로 같은 값을 가질 수 있지만,
고객 아이디의 경우 서로 다른 값을 가져야 합니다.
◇ Key란?
◎ 검색, 정렬 시 튜플(레코드, 행)을 구분할 수 있는 기준이 되는 속성.
◎ 후보키 ( Candidate Key )
- 기본키로 사용할 수 있는 속성들(유일성, 최소성)을 말합니다.
- 후보키 중 기본키를 제외한 나머지는 모두 보조키가 됩니다.
- 유일성 O, 최소성 X ->> 슈퍼키.
◎ 기본키 ( Primary Key )
- 하나의 테이블에서 특정 튜플을 구별할 수 있는 속성(Attribute)을 의미합니다.
- "개체 무결성" 에 의해 기본키에는 null 값과 중복된 값이 저장되어질 수 없습니다.
- 엔티티를 식별하는 대표 키가 됩니다.
- table 당 1개만 지정합니다.
◎ 외래키 ( Foreign Key )
- 참조되는 테이블의 '기본키'와 대응되어 테이블 간에 참조 관계를 표시하는 키입니다.
- 외래키로 지정되면, 참조 무결성에 의해서 참조 테이블의 기본키에 없는 값은 입력할 수 없습니다.
- 두 테이블 간의 종속이 필요한 관계이면,
그 접점이 되는 칼럼을 'FK'로 지정하여 서로 참조할 수 있도록 관계를 맺어줍니다.
- 테이블 간의 잘못된 매핑을 방지하는 역할을 합니다.
◇ 외래키는 NULL이 허용되는가?
☆ 허용됨 !
ex) 사원은 하나의 부서를 가짐 / 신입사원은 부서가 미정일 수 있음
1) 외래키 값은 'NULL' 이거나 부모 테이블의 기본키 값과 동일해야 합니다 [ 참조 무결성 제약 조건 ]
2) 부모 테이블의 기본키, 고유키를 외래키로 지정할 수 있습니다.
3) 부모 테이블의 기본키, 고유키가 여러 개의 컬럼으로 이루어져 있다면
부모가 가진 기본키, 고유키 컬럼을 원하는 개수만큼 묶어서 외래키로 지정 가능합니다.
4) 외래키로 지정할 두 테이블의 필드는 같은 데이터 타입이어야 합니다.
'면접준비[프론트,백,데이터,CS] > InterView 준비 [ DB,데이터,클라우드 ]' 카테고리의 다른 글
[ DB & SQL(RDBMS, NoSQL) 면접 준비 ] DB/SQL 면접 준비 02 (0) | 2024.12.17 |
---|---|
[ DB & SQL(RDBMS, NoSQL) 면접 준비 ] DB/SQL 면접 준비 01 (1) | 2024.12.17 |