[오용철의 데이터베이스 모델링] 1. 데이터 베이스
2021. 3. 5. 2:20
https://www.youtube.com/watch?v=gqZUCRsNdLA
인터페이스, interface
명사컴퓨터
1. 전기 신호의 변환(變換)으로 중앙 처리 장치와 그 주변 장치를 서로 잇는 부분. 또는, 그 접속 장치.
2. 키보드나 디스플레이 등처럼 사람과 컴퓨터를 연결하는 장치.
접속 장치를 뜻한다.
데이터베이스란
- ‘a collection of related data’
- 서로 관련 있는 데이터들의 모임
- By Elmasri and Navathe
- 관련이 되어 있는 것이 중요하다.
* 예시
1) 메모장에 두서없이 적어 놓은 단어들의 모임 - 데이터 베이스 X
2) 메신저 프로그램에 등록된 이름들 - 데이터 베이스 O
3) 기상청의 매일의 날씨와 예보 데이터를 모아 둔 집합 - 데이터 베이스 O
• 데이터베이스 관리 시스템
(DBMS, Database Management System)
– 데이터베이스를 잘 구축해서 관리하는 작업에
사용되는 프로그램들의 묶음
– 오라클사의 Oracle, 마이크로소프트사의 MS SQL,
리눅스 계열의 My SQL
• 데이터베이스 시스템(DBS, Database System)
– 사용자가 데이터베이스 관리 시스템을 통하여
물리적인 데이터베이스와 소통하는 형태의 시스템
• 데이터베이스 관리 시스템의 장점
– 데이터의 중복성과 불일치성 감소
– 데이터 보안
– 질의 처리에 효율적인 저장 구조
– 백업(Backup) 과 복구(Recovery)
– 다양한 인터페이스
– 일관된 데이터를 유지
• 데이터베이스 관리 시스템의 단점
– 자원이 많고 복잡하며 비싸다.
• 데이터베이스 시스템의 사용
– 데이터베이스와 응용 프로그램이 매우 단순하고
변경이 거의 없는 경우
– 단일 사용자만이 데이터베이스에 접근하는 경우
– 실시간성이 제일 중요한 데이터베이스 시스템의 경우
• 데이터베이스 스키마(Schema)
– 데이터베이스의 구조와 제약조건에 대해서 분명하고
자세하게 기술한 것
– 구체적으로 데이터베이스를 구성하는 애트리뷰트와
관계 등의 집합
• 데이터베이스 상태
– 특정 시점의 데이터베이스 내용
– 인스턴스
• 데이터베이스 언어
– 데이터베이스를 정의하고 모든 저장 데이터베이스의
접근을 지원하는 통신 수단
데이터 정의어(DDL, Data Definition Language)
데이터 조작어(DML, Data Manipulation Language)
데이터 제어어(DCL, Data Control Language)
• 데이터 정의어(DDL)
– 데이터베이스 관리자나 설계자가 데이터 간의 관계를
정의하거나 이미 정의된 데이터베이스의 구조를
변경하거나 수정하는 데 사용하는 언어
• 데이터 조작어(DML)
– 데이터베이스 사용자가 응용 프로그램이나 질의어를
이용해서 저장된 실제 데이터를 검색, 수정, 삭제,
변경 등을 수행하는 데 사용하는 언어
• 데이터 제어어(DCL)
– 데이터베이스 관리자가 데이터를 관리하려고
데이터의 보안, 무결성, 데이터 복구, 병행 수행
제어 등을 정의할 때나, 사용자의 권한을 설정할 때
사용하는 언어
• 데이터베이스 사용자(Database User)
– 조직 내에서 구축된 데이터베이스를 사용하는
사람들의 총칭
– 데이터베이스 관리자, 시스템 프로그램 개발자,
업무 분석가, 응용 프로그램 개발자, 일반 사용자
등으로 구분
• 데이터베이스 관리자
(DBA, Database Administrator)
– 데이터베이스의 전체 환경 구성과 운영에 관련된
전반적인 책임자
• 데이터베이스 설계자(Database Designer)
– 데이터베이스의 요구 사항을 분석해서
데이터베이스의 개념적, 물리적 스키마의 설계를
책임
• 최종 사용자(End User)
– 일반 사용자, 초보 사용자, 전문 사용자 등으로 나눌
수 있다.
– 보통은 데이터베이스에 대한 질의 및 갱신 연산을
주로 하는 단순 사용자
• 시스템 분석가/응용 프로그램 개발자
(System Analyst/Application Programmer)
– 시스템 분석가, 응용 프로그램 개발자는 초보
사용자를 위하여 잘 정의된 기능의 응용 프로그램을
설계하고 구현하는 사람
• 데이터베이스 단위
– 필드(Field) : 문자와 워드로 구성된 컴퓨터 상에
정보를 표현할 때 의미가 있는 데이터 표현의 최소
단위
– 레코드(Record) : 하나 이상의 필드가 모인 것
– 파일 : 레코드들이 모여서 구성된 관련 레코드들의
집합
• 데이터베이스 추상화와 데이터 독립성
– 추상화(Abstraction) : 알 필요가 없는 복잡한 부분을
은폐하는 것
– 데이터 독립성 : 특정 스키마를 변경할 때 상위
단계의 스키마에 영향을 미치지 않는 성질
• 3계층 스키마
– 사용자의 응용 프로그램과 물리적 데이터베이스를
분리시키는 것이 목적
• 논리적 데이터 독립성
(Logical Data Independence)
– 외부 스키마나 응용 프로그램을 변경하지 않고 개념
스키마를 변경할 수 있는 능력
• 물리적 데이터 독립성
(Physical Data Independence)
– 개념 스키마를 변경하지 않고 내부 스키마를 변경할
수 있는 능력
• 데이터 모델
– 실세계를 데이터베이스화할 때 어떻게 진행할지
결정하는 기준이 된다.
– 데이터베이스를 구성하는 데이터의 성격과 의미,
데이터 간의 관계, 그에 따른 제약조건 등에 따라
데이터베이스화가 이루어지도록 하는 도구
– 물리적, 논리적, 개념적 데이터 모델로 분류
• 물리적 데이터 모델
– 데이터가 어떻게 컴퓨터에 저장되는지에 관심
– 레코드의 형식, 레코드 순서, 접근 경로 같은 정보
• 개념적 데이터 모델
– 사용자가 데이터를 어떻게 인식하는지에 관심
– 데이터의 저장은 나타내지 않는다.
– 엔티티-관계(Entity-relationship) 데이터 모델
• 논리적 데이터 모델
– 컴퓨터와 사용자 둘 다를 고려하는 데이터 모델로
사용자가 이해할 수 있게 하면서 실제로 저장될 수
있는 구조를 갖게 한다.
– 계층, 네트워크, 관계, 객체지향 데이터 모델