교육 (Today I Learned)/SeSAC

SeSAC 1일차 / 데이터베이스 개론

Bay Im 2023. 7. 18. 00:29
SeSAC 1일차(2023-07-17)
데이터베이스 개론

 

데이터(Data): 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값

정보(Information): 데이터에 의미를 부여한 것

지식(Knowledge): 사물이나 현상에 대한 이해

 

 

데이터베이스(Database)

 

- 데이터베이스(Database)

정보의 조직화된 집합체

논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것

검색과 변경 빈도가 적을수록 구축이 쉽고, 많을수록 어려움.

 

- 데이터베이스의 개념

통합된 데이터(integrated data): 여러 곳에서 사용하던 데이터를 통합해서 하나로 저장한 데이터, 데이터 중복 최소화

저장된 데이터(stored data): 컴퓨터 보조기억장치에 저장

운영 데이터(operational data): 조직 운영에 필요한 데이터가 구조적으로 통합되어 있음, 업무를 위한 목적으로 저장

공용 데이터(shared data): 다수 사용자와 응용프로그램이 공유

 

- 데이터베이스의 특징

실시간 접근성(real time accessibility): 사용자나 응용프로그램의 요구를 즉시처리 및 응답

계속적인 변화(continuous change): 데이터 값의 삭제, 갱신 등으로 값이 지속적으로 변화

동시 공유(concurrent sharing): 다수의 사용자나 응용프로그램이 동시에 접근

내용에 의한 참조(reference by content): 데이터의 물리적 위치를 몰라도 원하는 데이터 검색하여 제공

 

 

 

데이터베이스 시스템(database system): 각 조직에서 사용하던 데이터를 모아서 통합하고 서로 공유하여 생기는 장점을 이용하는 시스템

 

- 데이터베이스 시스템의 구성

데이터베이스 관리 시스템(Database Management System, DBMS): 사용자와 데이터베이스를 연결해주는 소프트웨어

데이터베이스(Database): 물리적으로 컴퓨터 내부의 하드디스크에 저장

데이터 모델(Data Model): 데이터가 저장되는 기법

 

 

 

파일 처리 시스템(File Processing System): 데이터를 파일 단위로 파일 시스템에 저장하고, 조작을 응용프로그램에서 처리한다. (응용프로그램이 파일에 직접 접근) 따라서 데이터베이스 구성 요소가 모두 응용프로그램에 종속되어 있다.

데이터 중복 저장과 일관성 훼손 가능성 있음

 

데이터베이스 처리 시스템(Database Processing System): DBMS가 데이터의 관리 작업을 독립적으로 담당하고 데이터는 데이터베이스에 저장하기 때문에 종속성과 부하를 줄일 수 있다. (응용프로그램이 DBMS에 파일 접근 요청)

데이터의 일관성 유지, 복구, 동시 접근 제어 등의 기능 수행

데이터의 중복을 줄이고 표준화하여 무결성 유지

 

 

 

데이터베이스의 종류: 계층형 데이터베이스, 망형 데이터베이스, 관계형 데이터베이스, 객체지향 데이터베이스

 

관계형 데이터베이스(Relational Database, RDB): 데이터 모델 구조가 탄력적이어서 테이블 사이의 연결을 통해 데이터를 생성 및 처리할 수 있다. (강력한 데이터 조작능력 제공)

단점으로 기억용량과 시간이 많이 필요, 각 표마다 인덱스가 수반된다.

 

관계형 데이터 모델: (Row)과 열(Column)로 구성된 2차원 테이블에 데이터 저장, 테이블은 하나의 엔티티에 관한 정보를 저장

 

 

 

데이터베이스 관리시스템(DBMS): 데이터베이스 생성 및 관리, 데이터로부터 사용자 질의에 대한 답을 검색하는 프로그램의 집합

접근통제 및 다수 사용자 동시 접근관리

데이터베이스 <-> DBMS <-> 응용 프로그램 1, 2, n…

 

- 데이터베이스 관리 시스템의 기능

정의 기능(Definition): 데이터의 형태, 구조, 데이터베이스의 저장에 관한 내용 정의

조작 기능(Manipulation): 사용자의 요구에 따라 검색, 갱신, 삽입, 삭제 등을 지원하는 기능

제어 기능(Control): 데이터베이스의 내용에 대해 정확성과 안정성을 유지하는 기능 (무결성 유지, 보안, 병행 수행 제어)

 

DBMS 도입 장점: 데이터의 중복과 불일치 감소, 데이터의 일관성 유지, 데이터 무결성 향상, 보안 향상

 

3단계 데이터베이스 구조: 물리적 관점(내부)-> 논리적 관점(개념적)-> 사용자 관점

 

Metadata: 데이터를 위한 데이터

 

 

 

- 데이터 언어

데이터 정의어(Data Definition Language, DDL): DB 구조를 정의 및 수정할 목적으로 사용하는 언어

데이터 조작어(Data Manipulation Language, DML): DB 정보에 접근하기 위한 목적으로 사용하는 언어

데이터 제어어(Data Control Language, DCL): 보안, 무결성, 회복, 병행 제어

 

 

 

 

 

관계형 데이터 모델

 

관계형 데이터베이스: 관계형 데이터 모델을 기반으로 하며 가장 널리 사용되는 데이터베이스

모든 데이터들을 행(row)과 열(column)로 구성된 2차원 테이블(릴레이션) 형태로 나타낸다.

 

 

스키마의 요소: 속성(attribute), 도메인(domain), 차수(degree)

인스턴스 요소: 튜플(tuple), 카디널리티(cardinality)

 

스키마: 각 항목을 정의하여 만든 테이블의 틀

튜플: 릴레이션의 각 행을 튜플 또는 레코드(record)라고 한다.

속성: 릴레이션의 각 열을 속성이라고 한다.

도메인: 속성 하나가 가질 수 있는 값의 집합

차수: 튜플을 구성하는 속성의 개수

카디널리티: 튜플의 개수

(null): 속성 값이 정해지지 않았거나 없는 경우의 값

 

 

- 릴레이션의 특징

속성은 단일 값을 가진다.

속성은 한 릴레이션에서 서로 다른 이름을 가진다.

릴레이션 내의 중복된 튜플은 허용하지 않는다.

 

 

 

(key): 릴레이션에서 튜플을 유일하게 식별할 수 있는 하나 이상의 속성 모임

 

후보키(candidate key): 각 튜플을 구분할 수 있는 최소한의 속성만으로 구성된 키

기본키(primary key): 후보 키가 두 개 이상일 때 대표로 삼을 키. Null 값을 허용하지 않음

대체키(alternate key): 기본키가 아닌 후보키

대리키(surrogate key) 또는 인조키(artificial key): 일련번호 같은 가상의 속성을 만들어 기본키로 삼는 경우

외래키(foreign key): 다른 릴레이션의 기본키를 참조하여 릴레이션 간 관계를 나타내는 키, 양쪽 릴레이션의 도메인은 서로 같아야함. NULL 값과 중복값 등이 허용, 자기 자신의 기본키를 참조하는 외래키도 가능

 

 

 

- 무결성 제약조건

도메인 무결성: 각 속성의 값은 도메인에 지정된 값을 가져야함

개체 무결성: 기본키를 구성하는 어떤 속성도 널 값을 가질 수 없으며 하나의 값만 존재해야함

참조 무결성: 자식 릴레이션의 외래키 값은 부모 릴레이션의 기본키 값과 같아야함

 

 

 

관계대수(Relational Algebra): 릴레이션에서 원하는 결과를 얻기 위해 연산을 이용하여 질의하는 방법을 기술하는 언어

관계형 데이터베이스에 데이터를 삽입, 검색, 수정, 삭제 등의 기능을 수행하는 언어

 

합집합: 두개의 릴레이션을 합하여 하나의 릴레이션 반환

교집합: 두 릴레이션이 공통으로 가지고 있는 튜플 반환

차집합: 첫번째 릴레이션에는 속하고 두번째 릴레이션에는 속하지 않는 튜플 반환

 

선택 연산(Selection): 릴레이션에서 주어진 조건식(predicate)을 만족하는 행들을 선택하는 연산 (WHERE 절 사용)

 

추출 연산(Projection): 릴레이션에서 특정 속성(column, )을 선택하는 연산

 

조인 연산(Join): 두 개의 릴레이션에서 특정 열 값 간의 비교 조건을 만족하는 행들을 연결하여 릴레이션을 만들어내는 연산 (= 사용)

 

카티전 프로덕트(Cartesian Product): 한 릴레이션에 속한 모든 행들을 다른 릴레이션의 모든 행과 연결시킨 결과 행으로 구성된 릴레이션을 만들어 낸다.

행 수가 각각 m, n개라면 카티전 프로덕트 결과로 나온 릴레이션의 행 수는 m*n개가 된다.

 

 

 

 

 

데이터 모델링

 

데이터 모델: 데이터베이스 설계 과정에서 데이터의 구조를 논리적으로 표현하기 위해 사용하는 도구

 

데이터 모델링: 모델은 현실세계의 구조에 대한 인식을 표현한다. 데이터 모델링 과정은 이 인식에 대한 오류를 수정하는 과정이다.

데이터 모델링 과정에서 관점을 선정하고, 추상화 하는 일을 한다.

정보 모델링(개념적 모델, ER 다이어그램)-> 데이터 모델링(논리적 모델, 관계 데이터 모델)-> DB로 구현

 

- 데이터 모델링 과정

요구사항 수집 및 분석-> 개념적 모델링-> 논리적 모델링-> 물리적 모델링-> 데이터베이스 구현

 

 

개념적 모델링(Conceptual Modeling): 많은 개체(entity)들 중 데이터베이스에 저장할 대상들을 추출하여 이를 추상화 시킨 개념으로 표현하는 과정

요구사항을 수집하고 분석한 결과를 토대로 전체적인 뼈대를 만드는 과정

가장 대표적인 개념적 데이터 모델은 개체-관계(Entity-Relationship) 모델이다.

 

논리적 모델링(Logical Data Model): 개념적 데이터 모델을 컴퓨터가 이해하고 처리할 수 있는 구조로 변환하는 과정

 

 

 

- E-R Model 구성요소

Entity(개체): 업무의 대상으로서 알 필요가 있으며 보관할 필요가 있는 중요한 정보

Entity(개체) 특징: 식별자에 의해 식별 가능, 반드시 속성을 포함, 다른 개체와 최소 한 개 이상의 관계를 맺고 있음, 업무 프로세스에 이용됨, 꾸준한 관리를 필요로 하는 정보

 

Attribute(속성): entity를 기술하는 구체적인 정보로서 entity를 식별하거나 상태를 나타낼 수 있는 모든 항목

Ex) 직원 entityattribute(속성)은 사번, 이름, 직급, 입사일 등이 될 수 있다. 속성은 꼭 필요할 항목일 수도 있고 그렇지 않은 항목일 수도 있다. 이 특성을 optionality라고 한다.

 

Relationship(관계): entity 간의 관계를 나타내는 것

 

Unique Identifiers (UID): occurrence를 식별하기 위해 사용되는 속성이나 관계의 조합을 말한다. Entity의 모든 occurrence는 유일하게 식별이 가능해야 한다.

 

Entity의 이름은 유일한 이름을 사용하며 대문자로 쓴다.

Attribute의 이름은 소문자로 쓴다. 꼭 필요한 속성일 경우 이름 앞에 *, 그렇지 않은 경우에는 o를 붙인다.

UID를 구성하는 attribute 이름 앞에 #을 붙인다. Secondary UID인 경우는 (#)을 붙인다.

실선은 must be, 점선은 may be