개인 공부/데이터베이스 설계
DB 개요
Koalitsiya
2023. 4. 10. 16:41
데이터와 정보
- 데이터
- 현실 세계에서 측정하고 수집한 사실이나 값
- 가공하기 이전의 단순한 관찰/측정을 통해 얻은 재료 즉, 사실이나 수치, 문자, 음성 등
- 정보
- 목적이나 의도에 맞게 데이터를 가공 처리한 것
- 특정 목적에 맞게 가공해서 판단의 근거로 사용될 수 있도록 의미와 가치를 부여한 것
- 데이터와 정보 구분
- 데이터 - 1년간 아이스크림 판매량
- 정보 - 아이스크림은 여름에 잘 팔린다.
Database Appplications
- DB 활용 예시
- 입금, 출금, 이체 등 은행 거래
- 숙소 예약
- 쇼핑몰에서 물품 구매
- ...
- DB 시스템의 특성
- 최초 적재(Loading) 이후 이벤트 발생에 따라 빈번하게 변경(Interaction)된다.
- 대용량의 데이터를 다루며, 그렇기에 사용자가 쉽고 빠르게 접근할 수 있도록 데이터가 체계적으로 조직화되어야 한다.
Database System
Database
- 정의: 특정 조직 내에서 다수의 사용자가 공유할 수 있도록 통합하여 저장한 운영 데이터의 집합체
- 실질적 의미: 데이터 및 데이터간 관계의 집합
- 장점
- 데이터 중복성 최소화
- 데이터 공유성 최대화
- 데이터 일관성 유지
- 데이터 무결성 유지
- 데이터 독립성 유지
- 데이터 보안성 최대화
- 데이터를 표준화하여 관리 가능
DBMS
- 정의: DB를 생성하여 안정적이고 효율적으로 운영하는데 필요한 기능을 제공하는 SW, 사용자 애플리케이션과 DB간의 인터페이스 역할을 하는 논리적 프로그램
- 실질적 의미: 사용자가 DB에 접근할 수 있도록 지원해주는 프로그램의 집합
- DBMS의 필수 기능
- 정의(Definition): 데이터 정의 및 저장 관리
- 조작(Manipulation): 조회, 삽입, 삭제, 갱신
- 제어(Control): 데이터 접근제어, 시스템 오류 발생시 복구 등
- 종류: MS Access, MySQL, MongoDB, Oracle Database 등
데이터베이스 스키마(Schema)
- 데이터베이스 구조, 데이터 타입, 그리고 제약 조건에 대한 명세
- 데이터베이스 설계 단계에서 명시되며, 자주 변경되지 않음
데이터베이스 인스턴스(Instance)
- 특정 시점에 데이터베이스에 실제로 저장되어 있는 데이터
DML/DDL
- 데이터 정의어(DDL: Data Defination Language)
- 데이터베이스의 논리적 구조, 즉 스키마를 기술하기 위해 사용되며, 주로 DB 설계자가 사용
- 데이터 조작어(DML: Data Manipulation Language)
- 데이터 처리 즉, 데이터의 조회, 삽입, 삭제, 갱신에 사용되며, 주로 이용자가 사용
- 데이터 제어어(DCL: Data Control Language)
- 트랜젝션 관리 즉, 권한 정의, 데이터 보안, 데이터 무결성, 데이터 복구, 병행 수행 제어에 사용
- cf) DCL, TCL(Transaction Control Language)
독립 실행형/내장형
- 독립 실행형: SQL 인터페이스를 이용하여 SQL 쿼리를 직접 DBMS에 입력
- 내장형: C, C++, JAVA, 파이썬 등의 프로그래밍 언어에 내장, Host Language + Data sublanguage로 구성