개념 최종 정리본
[1장]
데이터베이스 정의
: 한 조직의 여러 응용 시스템들이 공유하기 위해 통합, 저장된 운영데이터의 집합
데이터베이스 정의 핵심 개념 4가지
1) 통합데이터: 중복을 최소화하고 통제 가능한 중복만 허용
2) 저장데이터: 컴퓨터가 접근할 수 있는 매체에 저장
3) 공유데이터: 조직의 여러 사용자가 함께 소유하고 이용
4) 운영데이터: 조직의 주요 기능을 수행하기 위해 꼭 필요
데이터베이스 특징 4가지
1) 실시간 접근성: 사용자의 데이터 요구에 실시간 응답
2) 동시 공유: 서로 다른 데이터의 동시 공유 뿐 아니라 같은 데이터의 동시 사용도 지원
3) 내용기반 참조: 데이터가 저장된 주소나 위치가 아닌 내용으로 참조
4) 계속 변화: 데이터베이스는 동적인 특성이 있어 데이터의 계쏙적인 삽입, 삭제, 수정을 통해 현재의 정확한 데이터를 유지한다.
형태에 따른 분류
- 정형 데이터: 미리 정해진 구조에 따라 저장된 데이터
- 반정형 데이터: 내용 안에 구조에 대한 설명이 존재하는 데이터
- 비정형 데이터: 정해진 구조 없이 저장된 데이터
특성에 따른 분류
1) 범주형 데이터: 종류를 나타내는 값
- 명목형 데이터: 서열 x
- 순서형 데이터: 서열 o
2) 수치형 데이터: 크기 비교와 연산이 가능
- 이산형 데이터: 개수
- 연속형 데이터: 측정
데이터: 현실 세계에서 단순히 관찰하거나 측정하여 수집된 사실이나 값
정보: 데이터를 의사결정에 유용할 수 있도록 처리하여 체계적으로 조직한 결과물
데이터와 정보의 차이
: 가공의 유무이다. 데이터를 처리하면 정보가 된다. 현재성과 정확성을 보장하는 가치 있는 정보를 얻으려면 현재상황을 관찰하고 측정하여 의미 있는 데이터를 많이 수집해야 한다.
[2장]
파일시스템(= 정보 처리 시스템)
: 데이터를 파일로 관리하기 위해 파일에 생성, 수정, 삭제, 검색 기능을 제공하는 시스템
응용프로그램마다 필요한 데이터를 별도의 파일로 관리한다.
파일시스템의 문제점
1) 데이터가 여러 파일에 중복 저장
2) 데이터 종속성: 파일의 구조를 변경하려면 응용프로그램도 함께 변경해야한다.
3) 동시 공유: 보안, 회복 기능 부족
4) 응용 프로그램 개발이 쉽지 않음
데이터베이스 관리 시스템(DBMS) 정의
: 파일 시스템의 문제점 해결하기 위해 제시된 소프트웨어
조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 관리한다.
응용프로그램과 데이터의 중재자로서 모든 응용프로그램들이 데이터베이스를 공유할 수 있게끔 관리해주는 소프트웨어 시스템
DB 관리와 사용자의 데이터 처리 요구 수행
- 주요 구성요소
1) 질의처리기: 사용자의 데이터 처리 요구를 수행한다.
2) 저장데이터 관리자: 디스크의 DB와 데이터사전을 관리한다.
- 주요 기능
1) 정의 기능: 데이터베이스 구조를 정의하거나 수정한다.
2) 조작 기능: 데이터를 삽입, 삭제, 수정, 검색하는 연산 기능을 제공한다.
3) 제어 기능: 데이터의 정확성과 안전성을 유지한다.
데이터베이스 관리 시스템(DBMS)의 장단점
장점:
1) 중복 통제
2) 독립성 확보
3) 동시 공유
4) 무결성 유지
5) 표준화
6) 장애 발생 시 회복
단점:
1) 비용이 많이 듦
2) 백업과 회복 방법이 복잡함
DBMS 발전과정
1세대: 네트워크DBMS, 계층DBMS
2세대: 관계DBMS
3세대: 객체지향DBMS, 객체관계DBMS
4세대: NoSQLDBMS, NewSQLDBMS
[3장]
데이터베이스 시스템 정의
: 데이터베이스에 데이터를 저장하고 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템
데이터베이스 시스템 구성요소 6가지
1) 데이터베이스(DB)
2)데이터베이스 관리 시스템(DBMS)
3) 데이터 언어(DL)
4) 사용자(User)
5) 데이터베이스 관리자(DBA)
6) 데이터베이스 기계(DBM)
스키마
: 데이터베이스에 저장되는 데이터구조와 제약조건을 정의한 것(한 번 정의하면 자주 변경X)
인스턴스
: 정의된 스키마에 따라 데이터베이스에 실제로 저장된 값(계속 변하는 특성)
3단계 데이터베이스 구조
: 데이터베이스를 쉽게 이해하고 이용할 수 있도록 하나의 데이터베이스를 관점에 따라 나눈 것
각 단게별로 다른 추상화를 제공한다.
내부 단계에서 외부단계로 갈수록 추상화 레벨이 높아진다.
외부단계
: DB를 개별 사용자 관점에서 이해하고 표현한 것
하나의 DB에 외부 스키마가 여러 개 존재할 수 있다. 외부 스키마를 서브스키마 라고도 한다.
외부 스키마는 외부 단계에서 사용자에게 적합한 데이터베이스를 정의한 것이다.
각 사용자가 생성하는 DB의 모습. 즉, 논리적 구조로 사용자마다 다르다.
개념단계
: DB를 조직전체의 관점에서 이해하고 표현한 것
하나의 DB에 개념 스키마가 하나만 존재할 수 있다.
개념 스키마는 DBMS나 DBA의 관점에 따라 사용자에게 필요한 데이터를 통합하여 전제 DB의 논리적 구조로 정의한 것이다.
데이터 간의 관계, 보안정책, 접근 권한에 대한 정의를 포함한다.
내부단계
: DB를 물리적인 저장장치의 관점에서 이해하고 표현한다.
하나의 DB에 내부 스키마 하나만 존재할 수 있다.
내부 스키마는 전체 DB가 저장장치에 실제로 저장되는 방법을 정의한 것이다.
레코드 구조, 필드 크기 등 물리적인 저장 구조를 정의한다.
3단계 데이터베이스 구조의 사상 또는 매핑
- 외부 스키마와 개념 스키마의 대응 관계 = 외부/개념 사상(응용인터페이스)
- 개념 스키마와 내부 스키마의 대응 관계 = 개념/내부 사상(저장인터페이스)
데이터 독립성
: 하위 스키마가 변경되어도 상위 스키마는 영향을 받지 않는 특성이다.
논리적 데이터 독립성
: 개념 스키마가 변경되어도 외부 스키마는 영향을 받지 않는다. 개념 스키마가 변경되면 외부/개념 사상(응용인터페이스)만 적절히 수정해주면 직접 관련이 없는 외부 스키마는 영향을 받지 않아 독립성이 유지된다.
물리적 데이터 독립성
데이터 사전(= 시스템 카탈로그)
: 데이터베이스에 저장되는 데이터에 고나한 정보를 저장하는 곳이다.
메타 데이터를 유지하는 시스템DB, 스키마, 사상정보, 제약조건 등을 저장한다.
일반 사용자로 접근이 가능하지만, 검색만 할 수 있다.
데이터 디렉터리
: 데이터사전에 저장된 데이터에 실제로 접근하는 데 필요한 위치 정보를 저장하는 시스템DB
일반 사용자의 접근을 허용하지 않는다. 시스템만 접근 가능
사용자 데이터베이스
: 사용자가 실제로 이용하는 데이터가 저장된 일반 DB
데이터베이스 사용자
: DB를 이용하기 위해 접근하는 모든 사람
1) DB관리자(DBS 운영, 관리) 주로 DDL, DCL 이용
2) 최종 사용자(DB에 접근, 데이터 조작하는 사람) 주로 DML 이용
3) 응용프로그래머(DL을 삽입하여 응용프로그램 작성) 주로 DML 이용
데이터베이스 관리자(DMA)
: DBS를 운영 및 관리한다.
업무
1) DB 재구성
2) 시스템 DB 관리
3) DB 구성요소 선정
4) 무결성 유지를 위한 제약조건 정의
5) 보안 및 접근 권한 정책 결정
6) DB 스키마 정의
7) 시스템 성능 감지 및 성능 분석
데이터 언어(DL)
: DBMS와 사용자 간 통신 수단
- 데이터 정의어(DDL): 기존 스키마를 정의하거나 수정한다.
- 데이터 조작어(DML): 데이터를 삽입, 삭제, 수정, 검색 등의 처리를 요구하기 위해 사용한다.
1) 절차적 DML: 사용자가 어떤 데이터를 원하고 그 데이터를 얻기 위해 어떻게 처리해야 하는지 설명
2) 비절차적 DML: 사용자가 어떤 데이터를 원하는지만 설명
- 데이터 제어어(DCL): 내부적으로 필요한 기법이나 규칙을 정의한다. (여러 사용자가 무결성, 일관성 유지하며 문제 없이 공유하도록)
데이터베이스 기계(DBM)
: DB와 DBMS를 설치하고 데이터 처리 연산을 담당한다.
[4장]
데이터 모델링
: 현실 세계의 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정, DB 설게의 핵심 과정
2단계 데이터 모델링
- 개념적 데이터 모델링: 현실세계의 중요데이터를 추출해 개념세계로 옮기는 작업
- 논리적 데이터 모델링: 개념세게의 데이터를 DB에 저장하는 논리적 구조로 표현하는 작업
데이터 모델
: 데이터 모델링을 쉽게 하도록 도와준다. 데이터모델링의 결과물을 표현하는 도구
- 개념적 데이터 모델: 현실 세계를 개념적 모델링하여 DB의 개념적 구조로 표현 ex. 개체-관계 모델
- 논리적 데이터 모델: 개념적 구조를 논리적 모델링하여 DB의 논리적 구조로 표현 ex. 관게데이터모델
데이터 모델의 구성
1) 데이터 구조: 자주 변하지 않는 정적인 특징이 있다.
- 개념적 데이터 모델에서 개념적 구조: 현실 세계를 개념 세계로 추상화했을 때 어떤 요소로 이루어져 있는지 표현한다.
- 논리적 데이터 모델에서 논리적 구조: 데이터를 어떤 모습으로 저장할 지 표현한다.
2) 연산: 값이 연산에 의해 계속 변하는 동적인 특징이 있다.
3) 제약조건: 데이터조작의 규칙으로, 데이터 무결성 유지를 위한 것이다.
개체-관계 모델(E-R model)
: 피터 첸이 1976년 제안한 데이터 모델
개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현한 것
구성요소: 개체, 속성, 관계
1) 개체
사람, 사물과 같이 구별되는 모든 것
다른 개체와 구별되는 이름을 가지고 있고, 속성을 하나 이상 가진다.
E-R 다이어그램에서 사각형으로 표현한다.
- 개체 타입: 개체를 고유한 이름과 속성들로 정의한 것
- 개체 인스턴스: 실체화된 개체(= 개체 어커런스)
- 개체 집합: 개체 인스턴스를 모아 놓은 것
2) 속성
속성 값의 개수
- 단일 값 속성: 값 하나 가짐
- 다중 값 속성: 값 여러 개 가짐
의미 분해 가능성
- 단순 속성: 분해 X
- 복합 속성: 분해 O
기존 값에서 유도되어 결정되는 유도 속성
널 속성: 널 값이 허용되는 속성, 존재하지 않는 값
키 속성: 개체 집합에 존재하는 개체 인스턴스 식별에 사용, 모든 개체 인스턴스의 키 속성값이 다르다.
3) 관계
개체와 개체가 맺고 있는 의미 있는 연관성
관계의 유형
1) 개체 타입의 수 기준
- 이항 관계: 개체 타입 2개가 맺는 관계
- 삼항 관계: 개체 타입 3개가 맺는 관계
- 순환 관계: 개체 타입 1개가 자기 자신과 맺는 관계
2) 매핑 원소의 수 즉, 매핑 카디널리티
- 일대일 관계 1:1
- 일대다 관계 1:n
- 다대다 관계 n:n
- 일대일 관계
개체 A의 개체 인스턴스가 개체 B의 개체 인스턴스 하나와 관계를 맺을 수 있고, 개체 B의 각 개체 인스턴스가 개체 A의 개체 인스턴스 하나와 관계 맺을 수 있다.
관계의 참여 특성
- 필수적 참여(전체 참여): 모든 개체 인스턴스가 반드시 관계에 참여
- 선택적 참여(부분 참여): 개체 인스턴스 중 일부만 관계에 참여
관계의 종속성
- 약한 개체: 다른 개체의 존재 여부에 의존적
- 강한 개체: 다른 개체의 존재 여부를 결정
논리적 데이터 모델
: 개념적 구조를 DB에 저장할 형태로 표현하는 논리적 구조
- 관계 데이터 모델: DB의 논리적 구조가 2차원 테이블 형태
- 계층 데이터 모델: DB의 논리적 구조가 트리 형태
- 네트워크 데이터 모델: DB의 논리적 구조가 그래프 형태
계층 데이터 모델
DB의 논리적 구조가 트리 형태
루트 역할을 하는 개체가 존재하고, 사이클이 존재하지 않는다.
다대다 관계를 직접 표현할 수 없다.
개체 간 상하관계가 성립된다.
두 개체 사이에 하나의 관계만 정의할 수 있다.
구조가 복잡해질 수 있다.
데이터의 생성, 수정, 삭제, 검색이 계층 데이터 모델보다 더 어려워진다.
'SQL' 카테고리의 다른 글
데이터베이스 쿼리 작성 (0) | 2024.01.27 |
---|---|
데이터베이스 인스턴스 생성 (0) | 2024.01.27 |
데이터베이스 테이블 생성 (0) | 2024.01.27 |
데이터베이스 E-R 다이어그램 작성 (0) | 2024.01.26 |
MySQL로 배우는 데이터베이스 개론과 실습 3장 연습문제 (0) | 2024.01.25 |