Database란 ?
한 조직의 여러 응용 시스템들이 공유하기 위해 통합하여 저장한 운영 데이타의 집합
논리적 구성 요소(logical components)
사용자 관점
데이터베이스 = {개체(entities), 관계(relationships)}
물리적 구성 요소(physical components)
저장 장치의 관점
BIT, byte, block, cylinder 등
개체(entity)
DB에 표현하고자 하는 정보 객체(object) 속성(attribute)들로 구성
속성 : 데이타의 가장 작은 논리적 단위(logical unit)
데이터 필드(field) 라고도 함
개체 집합(entity set)
개체 타입(entity type) + 개체 인스턴스(entity instance)
일반적으로 "레코드"라 하기도 함
레코드 타입(record type) + 레코드 어커런스(record occurrence)
형태정의 → 개체 타입
각각의 값들을 수집하면 → 개체 인스턴스
개체 인스턴스를 모으면 집합이 된다.
관계
개체 관계(entity relationship)
개체 내부(intra-entity) & 개체 간(inter-entity) 관계
학번 → 식별자 속성
인스턴스를 구분할 때 필요한 것이 식별자 속성이다.
식별자와 비 식별자 간에 존재하는 종속관계 → 개체 내부관계
학번을 알면 이름과 학과를 알 수 있다.
학생객체와 교수 객체 사이에는 지도라는 관계가 있다. → 개체 간 관계
각 개체간의 식별자 속성을 매칭시켜 지도라는 관계를 표현한다.
즉 객체간의 관계도 식별자를 통해 구별한다.
식별자 속성 → Key라고 표현
개체-관계 모델(E-R Model) 표현
관계형 모델 표현
DBMS(Database management system)란? 응용 프로그램과 데이터간의 중재자로서 모든 응용 프로그램(사용자)들이 데이터베이스를 공용할 수 있게 관리해주는 소프트웨어 시스템
파일 시스템의 데이터 종속성과 중복성 문제 해결을 위해 고안
DB의 3단계 (3-level) 표현 (종속성 제거)
ANSI/SPARC에서 제안한 표준 구조
3단계 DB 구조에 기반
외부 스키마(external schema) → 개념→app,특성변형, 발췌 →외부스키마
개념 스키마(conceptual schema) → 논리적
내부 스키마(internal schema)→ 저장될때 (변형, 특성반영)
스키마(schema) →구조, 형식, 틀
DB의 논리적 정의(명세)
DB의 구조(개체, 관계)와 제약조건(constraints)을 명세
외부 → 개념
발췌,변형, 논리적
개념 → 내부
저장장치의 특성반영, 변형
변환구간에 매핑을 위한 인터페이스가 존재한다.
데이터베이스를 교체했을 때 내부 스키마만 변경되고, 인터페이스 매핑 내용만 변경만 하면 된다. (물리적 데이터 종속성)
데이터 독립성
- 논리적 데이타 독립성 (종속성의 반대)
응용 프로그램에 영향을 주지 않고 논리적 데이타 구조의 변경이 가능
응용프로그램의 효율적 개발이 가능 (생산성, 효율성이 상승)
- 물리적 데이타 독립성
응용 프로그램과 논리적 데이타 구조에 영향을 주지 않고 물리적 데이타 구조의 변경이 가능
저장 장치의 호환성 증대
데이터 언어
기본 기능
데이터베이스의 정의(definition), 조작(manipulation), 제어(control)
데이터 정의어(DDL : Data Definition Language)
데이터베이스 구조 정의(definitions) 및 변경(alteration)
논리적 데이타 구조/물리적 데이타 구조/ 사상(mapping) 명세
데이터 조작어(DML: Data Manipulation Language)
데이터 처리 연산(oepration)의 집합
데이타의 검색,삽익, 삭제, 변경 연산 (CRUD)
데이터 조작어
절차적 DML
저급 데이타 언어(low-level data language)
what과 how를 명세
사용 시, 전문적인 지식이 필요함
비절차적(non-procedural) DML
고급 데이타 언어(high-level-data language)
what만 명세(declarative 함) → how는 시스템에게 위임
질의어 (Query Language)라고도 함
대화식 : command 타입
데이타 부속어(DSL, Data Sublanguage) host program속에 삽입되어 사용되는 DML을 통칭
응용 프로그램 속에 내장(embedded)되어 사용
DML 예비 컴파일러(pre-compiler) 필요
최근에 Data 접근용 C, C++, JAVA API 등을 많이 사용함
과거에는 컴파일러가 두 개 필요했다.
현재는 아님
데이터 제어어(DCL : Data Control Language)
DB 관리를 위한 각종 제어 및 통제(data control) 정의
주 사용자는 DBA
주요 제어 내용
데이터 보안(security) 데이터 무결성(integrity) 데이타 회복(recovery) 병행 수행(concurrency)
현실 → E-R 모델 → 관계형 모델
관계형 데이타베이스
릴레이션의 예 (테이블)
애트리뷰트 ( 학번, 이름, 학년, 학과)
→ Data Type을 정의한 것 → 도메인 → 테이블의 틀과 형식을 정의하였다. 즉 릴레이션의 스키마를 정의하였다.
각각 삽입된 데이터를 투플(인스턴스)라고 말한다.
채운 데이터들이 모여있다 즉 릴레이션이 완성된다.
즉 이것이 관계형 데이터이다.
릴레이션의 특성
튜플의 유일성(uniqueness of tuples) 릴레이션 = 투플들의 집합(set)
애트리뷰트의 원자성(atomicity)
애트퓨리뷰트 값은 원자 값(atomic value)
정수, 실수, 문자, 문자열 등의 기본 자료형 + 단일값 특성
널 값도 원자 값임
unknown, inapplicable
반복 그룹(repeat group)값은 불가
집합 값 : 취미 = {운동, 독서, 음악감상}
범위 값 (range variable) 불가
몸무게 ={54~78kg}
키(key)
릴레이션의 각 투플을 유일하게 식별하는 속성 집합(set of attributes) 슈퍼 키(super key) (key)
유일성(uniqueness)만을 만족하는 애트리뷰트 집합
최소성(minimality)은 만족하지 않음
후보 키(candidate key)
유일성
각 튜플에 대해 값은 유일
최소성
K는 각 튜플을 유일하게 식별하는데 필요한 애트리뷰트만 포함
기본 키(primary key)
후보 키(candidate key)중에서 DBA가 지정한 식별자 키
각 투플에 대한 기본 키 값은 항상 유효한 값이어야 함
null값을 허용하지 않는다 → 개체 무결성 제약 조건
대체 키 (alternate key)
후보키가 여러개일 경우, 이들 중에서 기본 키로 지정된 것을 제외한 나머지 후보 키를 말함
관계는 외래키로 표현한다
'휴지통 > 학부' 카테고리의 다른 글
화일의 기본개념(1) (0) | 2021.09.09 |
---|---|
컴퓨터 그래픽스의 응용 (0) | 2021.09.08 |
네트워크의 기초 용어와 기능 (0) | 2021.09.08 |
데이터 통신 기본 개념 (0) | 2021.09.08 |
네트워크 (1) (0) | 2021.09.07 |