정의
데이터베이스
관련있는 데이터의 모임
조직의여러사용자가공유(Shared)하여사용할수있도록 통합(Integrated)해서 저장(Stored)한 운영(Operational) 데이터의집합
DBMS데이베이스의 생성과 관리를 담당하는 소프트웨어 패키지
데이터베이스 시스템데이터베이스와그를관리하는소프트웨어(DBMS, 응용 프로그램) 모두를 칭하는 용어
*DBMS 장점 *
1) 데이터 중복최소화와이로인한데이터불일치최소화
2) 프로그램-데이터독립성에의한유지보수비용절감
3) 데이터 처리를보다쉽고효율적으로처리가능
4) 데이터 무결성(integrity) 유지
5) 데이터 동시공유가능
6) 장애 발생시데이터회복가능
7) 보안 향상
8) 데이터 처리방법표준화가능
데이터 모델링
현실세계의데이터를컴퓨터세계의데이터베이스로옮기는변환과정
- 데이터 모델링 단계
- 개념적 데이터 모델(conceptual data model)
- 사람이인식하는것과유사하게데이터구조명시
- 예: 엔티티-관계(ER: Entity-Relationship) 데이터 모델
- 논리적 데이터 모델(logical data model)
- 사람이이해하는개념이면서컴퓨터내에서데이터가조직되는 방식과멀리떨어져있지는않음
- 예: 관계형 모델(relational model) ,객체지향 모델(object oriented model),객체관계 모델(object-relational data model), 네트워크 모델, 계층 모델
- 물리적 데이터 모델(physical data model)
- 컴퓨터가인식하는것과가까움
- 데이터베이스에데이터가어떻게저장되는가를기술
- 개념적 데이터 모델(conceptual data model)
데이터베이스 언어
- DDL(Data Definition Language, 데이터 정의어)
- 데이터 구조(스키마)정의, 수정, 삭제
- 예) SQL // CREATE TABLE, ALTER TABLE, DROP TABLE
- DML (Data Manipulation Language, 데이터 조작어)
- 데이터 검색,삽입,삭제,수정
- 예) SQL // SELECT, INSERT, DELETE, UPDAT
ANSI/SPARC 3단계 아키텍처(구조)
- 외부(뷰) 단계
- 일반 사용자나 응용 프로그래머가 접근하는 계층
- 여러 종류의 사용자들을 위해, 동일한 개념 단계로부터 여러 개의 서로 다른 뷰가 제공될 수 있음
- 개념(논리) 단계
- 전체 데이터베이스의 논리적인 구조 정의
- 개념 스키마는 저장장치에 독립적으로 기술되며, 데이터 간의 관계, 제약 사항, 무결성에대한내용포함
- 내부(물리) 단계
- 물리적 저장장치에 데이터베이스가 실제로 저장되는 방법의 표현
데이터 독립성(Data Independence)
하위스키마를변경하더라도상위스키마가영향을받지않는특성
논리적 데이터 독립성(logical data independence) 개념 <-> 외부
물리적 데이터 독립성(physical data independence 개념 <-> 내부
논리적 데이터 독립성(logical data independence)
- 외부 단계와 개념 단계 사이의 독립성
- 개념 스키마가 변경되어도 외부 스키마는 영향을 받지 않음. 논리적 구조가 변경되어도 응용프로그램에는 영향이 없도록 하는 개념
- 응용프로그램에 영향을 미치지 않고, 논리적 데이터 구조를 변경시킬수 있는 능력
물리적 데이터 독립성(physical data independence)
- 개념 단계와 내부 단계 사이의 독립성
- 저장장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원한다.
- 응용프로그램과 논리적 데이터 구조에 영향을 주지 않고, 물리적 데이터 구조를 변경할 수 있는 능력
관계 데이터 모델
- 관계 데이터 모델은 릴레이션(테이블)들의 모임으로 표현
- 릴레이션은 튜플(행)들의 집합으로 표현
- 튜플은 속성(열, 애트리뷰트, 컬럼)들로 구성
릴레이션의 특성
- 튜플의 유일성: 동일한 튜플이 두 개 이상 존재하지 않음
- 릴레이션은 서로 다른 튜플들의 집합
- 키(key)가 존재함
- 릴레이션의 키: 각 튜플을 고유하게 식별할 수 있는 하나 이상의 속성들의 모임(슈퍼키, 후보키, 기본키)
- 한 튜플의 각 속성은 단일값(원자값, atomic value)을 가짐
- 속성값은 분해 불가능
- 튜플들의 순서는 중요하지 않음
- 속성들의 순서는 중요하지 않음
- 한 속성의 값은 모두 같은 도메인값을 가짐
- 각 릴레이션은 오직 하나의 레코드 타입만 포함
- 각 릴레이션에 오직 한 가지 유형의 정보만 저장
데이터 무결성
데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것을 말함
- 무결성 제약 조건(Integrity Constraints)
- 데이터베이스 상태가 만족 시켜야 하는 조건
- 무결성 제약 조건을 만족하는 경우 데이터베이스에 저장된 모든 데이터가 정확한 상태로 저장 될 수 있음을 보장
- 데이터베이스의 데이터에 어떤 변경(삽입, 삭제, 수정)이 있을 때, DBMS가 자동적으로 무결성 제약 조건을 검사하므로 응용프로그램들은 이러한 제약 조건을 검사할 필요가 없음
![[Pasted image 20250312145806.png]]
데이터 무결성: 개체 무결성 제약 조건
- 슈퍼키(super key)
- 튜플들을 고유하게 식별하는데 꼭 필요하지 않은 속성들을 포함할 수 있음(1개 이상 존재)
- 후보키(candidate key)
- 튜플을 유일하게 식별할 수 있는 속성의 최소 집합 (1개 이상 존재)
- 기본키(primary key)
- 여러 후보키 중 1개를 선정하여 대표로 삼는 키
데이터 무결성: 참조 무결성 제약 조건
- 두 릴레이션의 연관된 튜플들 사이의 일관성을 유지하는데 사용
- 릴레이션R2의 외래키가 릴레이션R1의 기본키를 참조할 때 참조 무결성 제약 조건은 아래의 두 조건 중 하나가 성립되면 만족됨
- 외래키의 값은R1의 어떤 튜플의 기본키값과 같다
- 외래키가 자신을 포함하고 있는 릴레이션의 기본키를 구성하고 있지 않으면 널값을 가진다
개념적설계
- ER 모델
- 최종 결과물: ER 다이어그램
- 개념적 모델링 결과를 표준화된 그림으로 표현
- 최종 결과물: ER 다이어그램
- ER 다이어그램의 구성 요소
- 개체 타입(entity)
- 관계 타입(relation)
ER 다이어그램 표기법(Chen)

ER 모델링과정
INPUT : 요구사항명세서
OUTPUT : ER 다이어그램
- 개체 타입들을 식별
- 개체 타입들과 관계 타입들에 필요한 속성들을 식별하고, 각 속성이 가질 수 있는 값 들의 집합을 식별
- 개체 타입들을 위한 기본키를 식별
- 관계 타입들을 식별
- 관계 타입에 속성이 필요한 경우라면 속성 식별
- 관계가 1:1, 1:n, n:m 중에서 어느 것에 해당하는지 결정
- ER 다이어그램 작성
- ER 다이어그램이 요구 사항에 부합되는지 검사
개체타입: 강한개체타입
- 강한 개체타입E에 대해 대응하는 릴레이션R을 생성
- E에 있던 속성들은 릴레이션R의 속성으로 표시
- E의 기본키가 릴레이션R의 기본키가 됨
사원(사원번호(pk), 사원이름)
관계타입: 2항관계, 다대다관계
- 관계타입R에 대해서 릴레이션R을 생성
- 참여 개체 타입에 해당하는 릴레이션들의 기본키를 릴레이션R의 속성으로 포함시키고, 이들의 조합이 릴레이션R의 기본키가 됨
- 관계타입R이 가지고 있는 모든속성들을 릴레이션R에 포함시킴
고객(고객번호(pk), 고객이름)
책(책번호(pk), 책이름)
구매(고객번호(fk), 책번호(fk))
관계타입: 2항관계, 일대다관계
▣ 관계타입R에 대하여 다(n)측의 참여 개체 타입에 대응되는 릴레이션S (예:사원)를 찾음
▣ 관계타입R에 참여하는 1측의 개체 타입에 대응되는 릴레이션T(예:부서)의 기본키(예:부서번호)를릴레이션S (예:사원)의 속성으로 포함 시킴
▣ 관계타입R이 가지고 있는 모든 속성들을 릴레이션S(예:사원)에 포함 시킴
부서(부서번호(pk), 부서이름)
사원(사원번호(pk), 사원이름, 부서번호(fk), 소속일)
관계타입: 2항관계, 일대일관계
- 관계타입R에대하여, R에참여하는관계타입에대응되는릴레이 션S(예:사원)와T(예:컴퓨터)를찾음
- S(예:사원)와T(예:컴퓨터) 중에서한릴레이션을임의로선택한다. 만일S(예:사원)를 선택했다면T(예:컴퓨터)의기본키(예:관리번호) 를S(예:사원)의속성으로포함시킴
- 관계타입R이가지고있는모든속성들을S(예:사원)에해당하는 릴레이션에포함시킴
사원(사원번호, 사원이름, 컴퓨터번호, 배정일)
컴퓨터(컴퓨터번호, 제조년도)
사원(사원번호, 사원이름)
컴퓨터(컴퓨터번호, 제조년도, 사원번호(fk), 배정일)
속성: 복합속성
- 복합속성을구성하는단순속성으로변환한다
고객(고객아이디(pk), 년, 월, 일)
속성: 다중값속성
- 각다중값속성에대하여새로운릴레이션R(예:고객연락처)을 생성
- 다중값속성을릴레이션R(예:고객연락처)에포함시키고, 다중 값속성을속성으로갖는개체타입(혹은관계타입)T(예:고객) 에해당하는릴레이션의기본키를릴레이션R(예:고객연락처) 에속성으로포함시킴
- 릴레이션의R(예:고객연락처)의기본키 = T(예:고객)의 기본 키+ 다중값속성
고객(고객아이디(pk, 고객명)
고객연락처(고객아이디(fk), 연락처)
약한개체타입, 식별관계타입
- 약한개체타입에대한릴레이션R을생성, 이때약한개체타입의 속성은릴레이션R의속성으로함
- 릴레이션R의속성에식별개체타입의기본키A를포함시킨다.
- 릴레이션R의기본키= A + 약한개체타입의구별자
- 식별관계타입=> 1 : N 관계타입의변환방법을따름
직원(직원번호(pk), 직원이름, 직책)
부양가족(직원번호(fk), 이름, 관계)
사원(사원번호, 이름, 급여, 직책, 주소, 부서번호(fk), 프로젝트번호(fk))
부양가족(사원번호(fk), 이름, 성별)
부서(부서번호, 이름)
프로젝트(프로젝트 번호, 이름, 예산, 사원번호(fk))
프로젝트위치(프로젝트번호(fk, 위치)
수행(사원번호, 프로젝트번호)
관계스키마에대한좋은설계
- 관계스키마가 잘 설계되었을 때의 모습
- 특징
- 데이터 중복성 최소화, 이에 따른 데이터 불일치성 최소화
- 데이터 갱신(삽입, 삭제, 수정)시 이상현상 없음
- 정보의무손실
=> 이러한 목표를 달성하기 위해, 관련된 속성들로만 각 릴레이션이 구성되어야 함
- 특징
함수적 종속성(FD, Functional Dependency)
- 함수적 종속성
- X와 Y를 임의의 속성들의 집합이라고 할 때, X의 값이 Y의 값을 유일하게 결정한다면 “X는 Y를 함수적으로 결정한다 (functionally determines)”라고 함
- X → Y로 표기하고, “Y는X에함수적으로종속된다”, “X는Y 의결정자(determinant)” 라고 함
제1정규형-> 제2 정규형과정
제2정규형-> 제3정규형과정
제3 정규형-> BCNF
정규화 절차의 핵심
- 하나의 릴레이션에는 하나의 주제(theme)만이 포함되도록 함
- 이상현상은 한 릴레이션이 여러 개의 주제가 섞여 발생하는 것으로 볼 수 있음
- 한 릴레이션에는 그 릴레이션의 키에 의해 결정되는 속성만을 포함 시키도록 함
- 이상 현상을 최소화
'database' 카테고리의 다른 글
| SQL 문법 정리 (0) | 2025.06.13 |
|---|---|
| 데이터베이스 프로그래밍 과제 / 최신 데이터베이스 (0) | 2025.06.11 |
| 데이터베이스 성능 향상[Index] (0) | 2025.06.11 |
| Transaction(트랜잭션) (0) | 2025.06.11 |
| PL/SQL (프로시저, 함수, 트리거) (0) | 2025.06.11 |