카테고리 없음

[오용철의 데이터베이스 모델링] 1. 데이터 베이스

귤치치 2023. 6. 23. 13:25

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) 데이터 모델

• 논리적 데이터 모델

– 컴퓨터와 사용자 둘 다를 고려하는 데이터 모델로

사용자가 이해할 수 있게 하면서 실제로 저장될 수

있는 구조를 갖게 한다.

– 계층, 네트워크, 관계, 객체지향 데이터 모델