데이터베이스 기초
1. 데이터베이스
1.1 데이터와 정보
- 데이터 : 현실 세계에서 단순히 관찰하거나 측정하여 수집한 사실이나 값이다.
- 정보 : 의사 결정에 유용하게 활용할 수 있도록 데이터를 처리한 결과물이다.
1.2 정보 처리, 정보 시스템, 데이터베이스
- 정보 처리 : 데이터에서 정보를 추출하는 과정 또는 방법이다.
- 정보 시스템 : 조직을 운영하기 위해 필요한 데이터를 수집하여 저장해두었다가 필요할 때 유용한 정보를 만들어주는 수단이다.
- 데이터베이스 : 정보 시스템 안에서 데이터를 저장하고 있다가 필요할 때 제공하는 역할을 한다.
1.3 데이터베이스의 정의
특정 조직의 여러 사용자가 **'공유'**해서 사용할 수 있도록 **'통합'**해서 **'저장'**한 '운영' 데이터의 집합이다.
- 여러 사용자가 함께 소유하고 사용할 수 있는 '공유 데이터'
- 중복을 최소화한 '통합 데이터'
- 컴퓨터가 접근할 수 있는 매체에 들어 있는 '저장 데이터'
- 조직의 주요 기능을 수행하기 위해 반드시 필요한 '운영 데이터'
1.4 데이터베이스의 특징
- **'실시간 접근'**이 가능하다.데이터베이스는 사용자의 데이터 요구에 실시간으로 응답할 수 있어야 한다.
- **'계속 변화'**한다.데이터베이스는 동적인 특징이 있어 데이터를 계속 삽입/삭제/수정하여 현재의 정확한 데이터를 유지해야 한다.
- **'동시 공유'**가 가능하다.동시 공유는 여러 사용자가 서로 다른 데이터를 동시에 사용하는 것뿐 아니라, 같은 데이터를 동시에 사용하는 것도 모두 지원한다는 의미다.
- **'내용으로 참조'**가 가능하다.데이터베이스는 저장된 주소나 위치가 아닌 데이터의 내용, 즉 값으로 참조할 수 있다.
1.5 데이터의 분류
- 정형 데이터
- 반정형 데이터
- 비정형 데이터
2. 데이터베이스 관리 시스템
2.1 파일 시스템
- 데이터를 파일로 관리하기 위해 파일의 생성, 삭제, 수정, 검색 기능을 제공하는 소프트웨어다.
- 응용 프로그램마다 필요한 데이터를 별도 파일로 관리한다.
- 데이터 중복성과 데이터 종속성 문제가 발생한다.
2.2 데이터베이스 관리 시스템(DBMS)
- 파일 시스템의 데이터 중복과 데이터 종속 문제를 해결하기 위해 제시된 소프트웨어다.
- 조직에 필요한 데이터를 데이터베이스에 통합하여 저장해두고 이를 관리한다.
2.3 데이터 관리 시스템의 주요 기능
- 정의 기능 : 데이터베이스의 구조를 정의하거나 수정한다.
- 조작 기능: 데이터를 삽입, 삭제, 수정, 검색하는 연산을 한다.
- 제어 기능 : 데이터를 항상 정확하고 안전하게 유지한다.
3. 데이터베이스 시스템
3.1 데이터베이스 시스템
- 데이터베이스에 데이터를 저장하고, 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템이다.
- 사용자, 데이터 언어, 데이터베이스 관리 시스템, 데이터베이스, 컴퓨터로 구성된다.
- 데이터베이스 : 데이터를 저장해두는 곳
- 데이터베이스 관리 시스템 : 데이터베이스에 저장된 데이터가 일관되고 무결한 상태로 유지되도록 관리하는 역할
- 데이터베이스 시스템 : 데이터베이스와 데이터베이스 관리 시스템을 이용해 조직에 필요한 정보를 제공해주는 전체 시스템
3.2 스키마와 인스턴스
- 스키마 : 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것이다.
- 인스턴스 : 스키마에 따라 데이터베이스에 실제로 저장된 값이다.
3.3 3단계 데이터베이스 구조
데이터베이스를 쉽게 이해하고 이용할 수 있도록 하나의 데이터베이스를 관점에 따라 세 단계로 나눈 것이다.
- 외부 단계 : 데이터베이스를 개별 사용자 관점에서 이해하고 표현한다.
- 개념 단계 : 데이터베이스를 조직 전체의 관점에서 이해하고 표현한다.
- 내부 단계 : 데이터베이스를 물리적인 저장 장치의 관점에서 이해하고 표현한다.
3.4 데이터 독립성
3단계 데이터베이스 구조의 목적은 데이터 독립성을 실현하는 데 있다. 데이터 독립성은 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성이다. 데이터 독립성에는 논리적 데이터 독립성과 물리적 데이터 독립성이 존재한다.
- 논리적 데이터 독립성 : 개념 스키마가 변경되어도 외부 스키마는 영향을 받지 않는다(외부/개념 사상).
- 물리적 데이터 독립성 : 내부 스키마가 변경되어도 개념 스키마는 영향을 받지 않는다(개념/내부 사상).
👉 스키마 사이의 대응 관계를 사상 또는 매핑이라 한다.
3.5 데이터 사전(시스템 카탈로그)
데이터베이스에 저장되는 데이터에 관한 정보, 즉 메타 데이터를 저장하는 시스템 데이터베이스다.
- 데이터 사전은 데이터베이스에 저장되어 있는 데이터를 정확하고 효율적으로 이용하기 위해 참고해야 되는 스키마, 사상 정보, 다양한 제약조건 등을 저장하고 있다.
- 데이터 사전은 데이터베이스 관리 시스템이 스스로 생성하고 유지하는 것으로, 데이터베이스 관리 시스템은 추가, 수정할 수 있는 반면, 사용자는 저장 내용을 검색만 할 수 있다.
- 데이터 사전에 있는 데이터에 실제로 접근하는 데 필요한 위치 정보는 데이터 디렉토리에서 관리하고, 시스템만 접근할 수 있다.
3.6 데이터베이스 사용자
사용자는 데이터베이스를 이용하기 위해 접근하는 모든 사람을 의미한다. 데이터베이스 관리자, 최종 사용자, 응용 프로그래머로 나눈다.
- 데이터베이스 관리자 : 데이터베이스 시스템을 운영, 관리한다.
- 최종 사용자(일반 사용자) : 데이터베이스에 접근하여 데이터를 조작(삽입, 삭제, 수정,검색)한다.
- 응용 프로그래머 : 데이터 언어를 삽입하여 응용 프로그램을 작성한다.
3.7 데이터 언어
데이터 언어는 사용자와 데이터베이스 관리 시스템 간의 통신 수단이다. 데이터 정의어, 데이터 조작어, 데이터 제어어로 나눈다.
- 데이터 정의어(DDL) : 스키마를 정의하거나, 수정 또는 삭제하기 위해서 사용한다.
- 데이터 조작어(DML) : 데이터의 삽입, 삭제, 수정, 검색 등의 처리를 요구하기 위해서 사용한다.
- 데이터 제어어(DCL) : 동시 공유가 가능하면서도 무결성과 일관성을 유지하도록 내부적으로 필요한 규칙이나 기법들을 정의하기 위해서 사용한다.
3.8 데이터베이스 관리 시스템
주요 기능은 데이터베이스 관리와 데이터 처리 요구에 대한 수행이다. 질의 처리기와 저장 데이터 관리자로 나눈다.
- 질의 처리기 : 사용자의 데이터 처리 요구를 해석하여 처리한다.
- 저장 데이터 관리자 : 디스크에 저장된 데이터베이스와 데이터 사전을 관리하고, 여기에 실제로 접근한다. 운영체제의 도움을 받아 데이터베이스에 대한 접근을 수행한다.
4. 데이터 모델링
4.1 데이터 모델링
데이터 모델링은 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정이다. 개념적 데이터 모델링과 논리적 데이터 모델링이 있다. 보통 개념적 모델링과 논리적 모델링을 통틀어 데이터베이스 설계라고 한다.
- 개념적 데이터 모델링 : 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮긴다.
- 논리적 데이터 모델링 : 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현한다.
4.2 데이터 모델
데이터 모델링의 결과물을 표현하는 도구로, 개념적 데이터 모델과 논리적 데이터 모델이 있다.
- 개념적 데이터 모델 : 현실 세계를 사람의 머리로 이해할 수 있도록 개념적 모델링의 결과물인 개념적 구조로 표현하는 도구다. 대표적으로 **개체-관계 모델(E-R Model)**이 있다.
- 논리적 데이터 모델 : 개념적 구조를 논리적 모델링의 결과물인 논리적 구조로 표현하는 도구다. 대표적으로 관계 데이터 모델이 있다.
4.3 개체-관계 모델
개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현하는 개념적 데이터 모델이다.
개체
현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것을 의미한다.
- 개체는 다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 가지고 있다.
- 개체를 고유의 이름과 속성들로 정의한 것을 개체 타입(entity type)이라 한다.
- 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체를 개체 인스턴스라 한다.
- 특정 개체 타입에 대한 개체 인스턴스들을 모아 놓은 것을 개체 집합이라 한다.
📌 개체와 속성은 파일 구조에서 레코드와 필드 용어에 대응된다. 개체 타입은 레코드 타입에, 개체 인스턴스는 레코드 인스턴스에 대응된다.
속성
개체나 관계가 가지고 있는 고유의 특성이다.
- 속성의 유형 : 속성 값의 개수, 의미의 분해 가능성, 기존 속성 값에서 유도에 따라 분류할 수 있다.
- 기존 속성 값에서 유도
- 널 속성 : 널 값이 허용되는 속성
- 키 속성 : 개체 집합에 존재하는 각 개체 인스턴스들을 식별하는 데 사용하는 속성 (하나 이상으로 구성)
관계
개체와 개체가 맺고 있는 의미 있는 연관성이다. 개체 집합들 사이의 대응 관계, 즉 매핑을 의미한다.
- **관계의 유형 : 관계에 참여하는 개체 타입의 수, 매핑 원소의 수(매핑 카디널리티)**에 따라 분류할 수 있다.
- 매핑 카디널리티 : 관계를 맺는 두 개체 집합에서, 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수
- 관계의 참여 특성 - 필수적 참여(전체 참여), 선택적 참여(부분 참여)개체 A와 B 사이의 관계에서, 개체 A의 모든 개체 인스턴스가 관계에 반드시 참여해야 될 때 개체 A가 관계에 '필수적 참여한다'라고 한다.
- 관계의 종속성 - 강한 개체, 약한 개체
4.4 개체-관계 다이어그램
- 개체-관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것이다. E-R 다이어그램이라고도 한다.
- 기본적으로 개체를 표현하는 사각형, 개체 간의 관계를 표현하는 마름모, 개체나 관계의 속성을 표현하는 타원과 각 요소들을 연결하는 선으로 구성된다.
4.5 논리적 데이터 모델
논리적 데이터 모델은 선택한 데이터베이스 관리 시스템에 따라 E-R 다이어그램으로 표현된 개념적 구조를 데이터베이스에 저장할 형태로 표현한 데이터베이스의 논리적인 구조다. 쉽게 말해, 논리적 데이터 모델은 논리적 데이터 모델링의 결과물이고, 사용자가 생각하는 데이터베이스의 모습 또는 구조다.
논리적 데이터 모델로 표현된 데이터베이스의 논리적 구조가 바로 데이터베이스 스키마다. 논리적 구조는 사용하는 데이터베이스 관리 시스템에 따라 달라진다.
- 관계 데이터 모델 : 데이터베이스의 논리적 구조가 2차원 테이블 형태다.
- 계층 데이터 모델 : 데이터베이스의 논리적 구조가 트리 형태다.
- 네트워크 데이터 모델 : 데이터베이스의 논리적 구조가 그래프 형태다.
5. 관계 데이터 모델
5.1 관계 데이터 모델의 개념과 기본 용어
개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델 중 하나다. 관계 데이터 모델은 하나의 개체에 대한 데이터를 릴레이션 하나에 담아 데이터베이스에 저장한다. 이와 관련해 릴레이션, 속성과 투플, 도메인, 널, 차수, 카디널리티 등의 용어가 사용된다.
- 릴레이션 : 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것
- 속성(애트리뷰트)과 투플 : 릴레이션의 열과 행
- 도메인 : 하나의 속성이 가질 수 있는 모든 값의 집합
- 널(null) : 아직 모르거나 해당되는 사항이 없음을 표현하는 특별한 값
- 차수 : 하나의 릴레이션에서 속성의 전체 개수
- 카디널리티 : 하나의 릴레이션에서 투플의 전체 개수
5.2 릴레이션과 데이터베이스의 구성
릴레이션은 릴레이션 스키마와 릴레이션 인스턴스로 구성된다.
- 릴레이션 스키마 : 릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조
- 릴레이션 인스턴스 : 어느 한 시점에 릴레이션에 존재하는 투플들의 집합
- 데이터베이스 스키마 : 데이터베이스를 구성하는 릴레이션 스키마의 모음
- 데이터베이스 인스턴스 : 데이터베이스를 구성하는 모든 릴레이션 인스턴스의 모음
5.3 릴레이션의 특성
- 투플의 유일성 : 하나의 릴레이션에는 동일한 투플이 존재할 수 없다.
- 투플의 무순서 : 하나의 릴레이션에는 투플 사이의 순서는 무의미하다.
- 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.
- 속성의 원자성 : 속성 값으로 원자 값만 사용할 수 있다.
5.4 키 🔑
키는 릴레이션에서 투플들을 구별하는 역할을 하는 속성 또는 속성들의 집합이다.
특성
- 유일성 : 한 릴레이션에서 모든 투플은 서로 다른 키 값을 가져야 함
- 최소성 : 꼭 필요한 최소한의 속성들로만 키를 구성함
종류
- 슈퍼키 : 유일성을 만족하는 속성 또는 속성들의 집합
- 후보키 : 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
- 기본키 : 후보키 중에서 기본적으로 사용하기 위해 선택한 키
- 대체키 : 기본키로 선택되지 못한 후보키
- 외래키 : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
5.5 관계 데이터 모델의 제약조건
관계 데이터 모델에서 정의하고 있는 기본 제약 사항은 키와 관련한 무결성 제약조건이다. 데이터를 정확하고 유효하게 유지하는 무결성을 보장해야 된다는 규칙이다. 개체 무결성 제약조건과 참조 무결성 제약조건이 있다.
👉 무결성 : 데이터에 결함이 없는 상태, 즉 데이터가 정확하고 유효하게 유지된 상태
- 개체 무결성 제약조건 : 기본키를 구성하는 모든 속성은 널 값을 가질 수 없다.
- 참조 무결성 제약조건 : 외래키는 참조할 수 없는 값을 가질 수 없다.
1. 스키마(Schema)와 인스턴스(Instance)
구분 | 스키마(Schema) | 인스턴스(Instance) | 공통점 | 차이점 |
정의 | 데이터베이스의 구조와 제약 조건 정의 | 현재 시점의 실제 데이터 | 데이터베이스의 핵심 요소 | 스키마는 고정적이며 인스턴스는 변화함 |
변화 | 스키마는 구조적 변화 | 인스턴스는 주기적으로 변경 | 각 스키마에 따라 데이터의 형태 결정 | 인스턴스는 특정 시점의 데이터를 포함 |
2. 범주형 데이터와 수치형 데이터
구분 | 범주형 데이터 (Categorical Data) | 수치형 데이터 (Numerical Data) | 공통점 | 차이점 |
정의 | 데이터가 특정 카테고리로 구분됨 | 수치적 값을 가짐 | 데이터의 표현 방식 | 범주형은 불연속, 수치형은 연속적 |
예 | 성별, 국적 등 | 키, 무게 등 | 특정한 정보를 전달 | 범주형은 고유값, 수치형은 수치 범위 |
3. 연속형 데이터와 이산형 데이터
구분 | 연속형 데이터 (Continuous Data) | 이산형 데이터 (Discrete Data) | 공통점 | 차이점 |
정의 | 무한한 값을 가질 수 있는 데이터 | 특정한 정수 값을 가짐 | 데이터의 형태 | 연속형은 측정값, 이산형은 셀 수 있는 값 |
예 | 시간, 거리 등 | 학생 수, 자동차 수 등 | 분석 및 처리가 가능 | 연속형은 그래프, 이산형은 차트로 표현 가능 |
<ER 다이어그램 (Entity-Relationship Diagram)>
정의
- ER 다이어그램은 현실 세계의 데이터 구조를 개념적으로 표현한 다이어그램으로, 데이터베이스 설계 시 사용됩니다.
구성 요소
1. **개체 (Entity)**
- **정의:** 현실 세계에서 구별 가능한 객체나 개념.
- **표현:** 사각형.
- **예시:** 학생, 교수, 강의 등.
2. **속성 (Attribute)**
- **정의:** 개체의 특성이나 정보를 나타냅니다.
- **표현:** 타원형.
- **유형:**
- **단순 속성 (Simple Attribute):** 더 이상 분해되지 않는 속성 (예: 이름).
- **복합 속성 (Composite Attribute):** 여러 속성으로 분해 가능한 속성 (예: 주소 → 도시, 우편번호).
- **다중 값 속성 (Multivalued Attribute):** 여러 값을 가질 수 있는 속성 (예: 전화번호).
- **유도 속성 (Derived Attribute):** 다른 속성에서 계산되는 속성 (예: 나이).
3. **관계 (Relationship)**
- **정의:** 개체 간의 연관성을 나타냅니다.
- **표현:** 마름모.
- **관계의 유형:**
- **1:1 관계:** 한 개체가 다른 개체 하나와만 연관.
- **1:N 관계:** 한 개체가 여러 개체와 연관.
- **N:M 관계:** 여러 개체가 여러 개체와 연관.
사용 목적
- 데이터베이스 설계 시 개체, 속성, 관계를 시각적으로 표현하여 구조를 이해하고 설계하는 데 도움을 줍니다.
'2024-소프트웨어과 1학년 > DB기초 데이터베이스 기초' 카테고리의 다른 글
데이터베이스 기초 3강 (3) | 2024.09.12 |
---|---|
[아기대학생김따루]IT cookbook데이터베이스개론(한빛미디어)/연습문제 2장 정답 (5) | 2024.09.05 |
[아기대학생김따루]IT cookbook-데이터베이스개론(한빛미디어) 1장 연습문제 정답 (2) | 2024.09.05 |
[아기대학생김따루][DB기초/데이터베이스 기초]1~2강_개념,단어 (0) | 2024.09.05 |