본문 바로가기
PROGRAMMING/DATABASE

(DBMS) 데이터베이스 기초 개념 총정리 / 요약 1

by Hey Nary 2021. 6. 12.
728x90
반응형

이후 참고하면 좋은 글 : [PROGRAMMING/DATABASE] - (DBMS) 데이터베이스 기초 개념 총정리 2

 

[1] 데이터베이스 개념

(1) 데이터와 정보

* Data (Facts, Symbol) – Information (Useful data) – Knowledge (Application of data information) – Wisdom (Appreciation of why)

 

* Data : 현실 세계를 관찰, 측정해 수집한 사실 객관적 사실이라는 존재적 특성 / 그 자체로 가치가 있고 상호관계에서 더 큰 가치가 있음

           - 범주형 명목형 : 특정 카테고리 / 순서X, 셀 수 있음 (Ex. 성별, 색깔, 취미))

           - 범주형 순서형 : 특정 카테고리 / 순서O, 셀 수 있음 (Ex. 학점)

           - 수치형 이산형 : 셀 수 있는 형태, 정수로 표현 (Ex. 나이, 학생 수, 불량품)

           - 수치형 연속형 : 연속인 구간에서 측정되는 양 (Ex. 시간, 온도, 무게, 길이)

 

* Information : 유용하게 처리할 수 있도록 데이터를 처리 (Ex. 날씨가 쌀쌀하니 비가 온다)

* Knowledge : 데이터, 정보에서 도출한 패턴, 판단 및 예측 가능 (Ex. 습도가 높을 때 온도가~)

* Wisdom : 근본적 원리에 대한 이해

 

(2) 데이터베이스 : 서로 관련 있는 데이터들의 모임 / 구조화된 데이터의 집합

(과거) OLAP (Online Analytic Processing) à (현재) OLTP (Online Transaction Processing)

--> 정보 시스템 관점 : 조직에 필요한 자료를 수집, 처리, 의사결정에 활용 / 응용 시스템이 공용할 수 있게 통합, 저장한 운영 데이터의 집합

--> 통합된 데이터 / 저장된 데이터 / 운영 데이터 / 공용 데이터

--> 실시간 접근성 (Real-time Accessibility) / 동시 공용 (Concurrent Sharing) / 계속적 변화 (Continuous Evolution) / 내용에 의한 참조 (Content Reference) – 주소, 위치가 아닌 값으로 참조

 

* 구축 목적

           1. 데이터 일관성 (Consistency) : 중복 (Redundancy) 최소화

           2. 통합화 (Integrated), 데이터 공유 (Shared), 보안성 (Security), 논리적, 물리적 독립성 (Independency), 표준화 (Standard)

           3. 무결성 (Integrity) : 의미무결성, 개체무결성 (기본키), 참조무결성 (외래키)

 

(3) 데이터베이스 구성요소

* 발전과정 : 1970s Relational DBMS (관계형) -->  Late-1970s SQP DBMS (객체지향)

* Schema : DB의 논리적 정의, 데이터 구조, 제약조건에 대한 Specification = 개체 Entity + 속성 Attribute + 관계 Relation + 제약조건 Constraint

* 3단계 : 외부 스키마 (사용자와 응용 프로그래머가 접근, 논리적인 부분, 여러 개 가능) / 개념 스키마 (전체 데이터베이스의 정의, DB 당 한 개) / 내부 스키마 (물리적 장치에 실제로 DB가 저장되는 방법)

* 데이터 독립성

           1. 논리적 데이터 독립성 : 외부 스키마와 개념 스키마 간 독립성. 논리적 구조가 변경되어도 응용프로그램 (외부) 에는 영향이 없음. 개념 스키마가 변경돼도 외부 스키마에는 영향 없음.

           2. 물리적 데이터 독립성 : 개념 스키마와 내부 스키마 간 독립성. 물리적 저장 장치가 재구성되어도 개념 스키마, 외부 스키마에 영향이 없음.

* 데이터베이스 사용자 (DB Administrator) : DB 설계와 운영, 데이터 표준 관리 및 행정 불편 해소, 시스템 감시 및 성능 분석

* 데이터베이스 언어 (DBA)

           1. 데이터정의어 (DDL) : DB 관리자, 설계자. DDL 컴파일러가 데이터 사전 (Data Dictionary), 시스템 카탈로그에 저장 후 시스템이 활용 (Ex. 테이블 생성, 변경..)

           2. 데이터조작어 (DML) : 사용자와 DBMS 간 인터페이스, 데이터 처리 도구 (Ex. 검색, 삽입, 삭제, 변경)

           3. 데이터제어어 (DCL) : 사용자가 DB를 공용, 유지, 관리, 통제. DB 관리 목적으로 DB 관리자가 사용. à 데이터 보안, 무결성, 회복, 병행 수행 (Concurrency)

 

[2] 관계형 데이터베이스

(1) DBMS (Database Management System)

* 목적 : 응용 프로그램과 DB의 중재자, 파일 시스템에서 야기된 종속성 (데이터 저장 파일 구조 응용프로그램 간 상호 의존관계) 및 중복성 (여러 응용 프로그램이 별도 데이터 파일 관리 시 데이터 불일치 발생)

* 역할 : 공유, 무결성, 표준화, 보안 강화, 프로그램 수정과 유지보수, 효율적 관리, 성능 향상

* 기능 : 정의 (논리적, 물리적 구조 간 Mapping 명세, 제약조건), 조작 (사용자와 DB 간 인터페이스를 위한 수단인 언어로 구현), 제어 (정확성, 안정성 유지 데이터 무결성이 파괴되지 않고 보안 유지, 권한 검사)

* 특징 : 무결성 / 일관성 / 회복성 / 보안성 / 효율성

 

(2) 관계형 DB 모델

- Hierarchical Data Model

- Network Data Model

- Relation Model : 수학적 Relation --> Table 형태로 데이터 저장 @집합이론

 

* 용어

- Relation : 2차원 형태 테이블

- Attribute : 최소 데이터 단위, 혼자 존재 불가능, 원자값 (Atomic Value)

- Tuple : . 속성이 모여 구성된 것으로 의미를 갖는 최소 단위

- Domain : 속성이 갖는 값의 집합

- Degree : Relation 의 속성의 개수

- Cardinality : Tuple

 

[3] 데이터 모델링과 설계

(1) 데이터 모델링 : 가시화 / 명세화 / 틀 제공 / 문서화 / 관점 제공 / 상세 수준 제공

개념 데이터 모델링 : ER 모델 --> 논리 데이터 모델링 : 스키마 --> 물리 데이터 모델링 : 상세구조

 

(2) 데이터베이스 설계 : 요구사항 / 개념적 설계 (모델) / 논리적 설계 (구조) / 물리적 설계 (상세) --> 단계적 실행 절차

* 데이터 지향적 관점 : 무결성, 일관성, 회복, 보안, 효율성, 확장성

* 5단계 : 요구 분석 --> 개념적 설계 (ER – 개체[네모], 속성[타원], 관계[마름모] 식별, 트랜잭션 정의) --> 논리적 설계 (Relation – 함수적 종속성 도출) --> 물리적 설계 (인덱스, 최적화 최적화 내부적 스키마) --> 구현 (DDL로 구조 생성, transaction 구현)

- 개체 : 유형, 무형의 객체, 하나 이상의 속성 기술

- 관계 : 객체 간 관련성, DB 내 저장될 대상

- 트랜잭션 : 논리적 기능을 수행하기 위한 작업의 단위, 일관성 유지 수단 (ACID : Atomicity_연산을 전부 또는 전무 실행 / Consistency_일관성 있는 유지 / Isolation_실행 중 다른 트랜잭션 접근 불가 / Durability_완료 결과의 영속성 보장)

 

[4] 데이터 모델링 개념적 설계

(1) 개념적 설계 : 데이터 개체 및 관계 식별, 표현 – ERD (개체, 관계, 속성)

(2) 개체 : 유형, 무형 객체로써 서로 구별. 물리적 / 개념적 개체

           - 개체 타입 : 개체를 구성하는 속성의 집합

           - 개체 속성

           - 강한 개체 타입 : 자신의 속성만으로 키 구성

          - 약한 개체 타입 : 자기 자신의 속성으로 불가 이중사각형 (관계: 이중 마름모) / 부분키속성 (점선 밑줄)

           - 개체 인스턴스 : 속성에 따른 값 // 개체 식별, 개체 명명

           - 개체 집합 : 특정 개체타입에 대한 인스턴스들의 집합

(3) 속성 : 개체를 나타내는 특성 / 더 이상 쪼갤 수 없음

           - 도메인 : 무결성 보장을 위한 제약조건

           - 일반속성 : 개체 또는 관계 성질을 나타내는 일반적 단위

           - 키 속성 : 개체 인스턴스를 유일하게 식별 가능. 개체 무결성 유지 (유일, Not null)

           - 다중값 속성 (이중원) / 단일값 속성 / 복합속성 / 유도 속성

(4) 관계 : 그 자체로 하나의 독립된 정보를 저장 단위_일대일 / 일대다 / 다대일 / 다대다 관계

           - 카디날러티 (Cardinality) : 관계에 참여하는 개체의 최소, 최대 수

           - 관계 참여 : 선택적 관계-다른 개체 타입과 연관이 없어도 됨 / 필수적 관계-반드시 다른 개체와 연관이 있어야 함, Cardinality min1이상

           - 관계 이중 : 한 관계가 한 개의 참조무결성

 

[5] 데이터모델링-ER모델 만들기

개체 선택 --> 관계 부여 --> 골격ERD 구성 --> 속성 부여

 

[6] 관계데이터 구조와 제약

(1) 관계데이터 구조

           1. 도메인 : 한 애트리뷰트가 취할 수 있는 모든 원자값의 집합. 이름_datatype

           2. 릴레이션 스키마 : R이름(A….An), R이 갖는 애트리뷰트의 수, 집합

           3. 튜플 : 인스턴스. T=<v1, v2,…> - 원소거나 Null , 모두 상이함, 튜플의 유일성

           4. 릴레이션 r : 튜플들의 집합 r={t1,t2,..}, R을 갖는 도메인들의 Cartesian product의 부분집합

           5. 카티션 프로덕트 : 원소의 쌍을 원소로 하는 새로운 집합 생성 연산

- 원자값 : 복합값, 다중값 속성은 허용되지 X

 

(2) 관계데이터 제약

1. 키 제약조건 : 튜플의 유일성

           / 후보키 : K가 집합 A의 부분집합 (유일성, 최소성)

           기본키 : 설계자가 선정한 후보키 중 하나

           대체키 : 기본키 제외 나머지 키

           슈퍼키 : 후보키 포함 모든 애트리뷰트 집합

           복합키 : 두 개 이상 애트리뷰트가 합쳐져 후보키 역할

           외래키 : 도메인은 같되 A 값이 S의 기본키 값.

2. 무결성 제약조건

           1) 개체 무결성 : 기본키 제약 조건인조키를 생성하기도 함, Null 불가능

           2) 참조 무결성 : 외래키 제약 조건 참조할 수 없는 값을 가질 수 없도록 데이터 불일치 시, 제한/연쇄/Null 대체

           3) 도메인 무결성 : 변경마다 DBMS에 의해 체크

 

[7] 논리적 데이터베이스 설계

(1) 개체와 관계의 관계모델 변환

1. 개체의 릴레이션 변환 : 개체 이름은 릴레이션 이름으로 대응.

           - N:M 관계 --> 양 기본키를 각각 외래키로 만들고, 별도 릴레이션에서 두 키를 기본키로.

           - 1:N 관계 --> 1의 기본키를 N의 외래키로 넣어 릴레이션 생성

           - 1:1 관계 --> 어느 쪽이든 한 쪽의 기본키를 외래키로 넣어 릴레이션 생성

 

(2) 속성의 관계모델 변환

           1. 키속성을 갖는 릴레이션 변환 : 해당 개체를 릴레이션으로 만들고 속성을 기본키로 설정

           2. 다중값 속성 : 기본키와 다중값 합쳐 복합속성을 만들고 이를 기본키로 하는 릴레이션 생성

           3. 복합속성 : 하나로 합쳐 애트리뷰화 or 여러 애트리뷰트

           4. 유도속성 : 중요도에 따라 존재 여부 판단

           5. 관계에 속한 속성 : 관계 속 속성은 관계가 표현된 rA로 변환

             1:N --> N쪽에 외래키로

             N:M --> 해당 관계는 새로운 릴레이션

(3) 특수개체 및 관계의 릴레이션 변환

           1. 약개체 : 기준 개체 기본키 + 약개체 대표 속성 합쳐 이를 기본키로 하는 릴레이션

           2. 순환관계 : 계측적 데이터 구조 or 자기참조관계. 개체의 기본키를 바로 해당 개체의 외래키로 넣어 릴레이션 생성

           3. 이중이진관계 : 각 관계에 따라 외래키 포함해 릴레이션 생성

 

[8] 관련 예제 (준비 중)


<Copyright 2021. heynary.tistory.com. All rights reserved.>

728x90
반응형

댓글