코딩의 기록

데이터베이스 (1)

모루우 2025. 6. 18. 22:15
728x90
반응형

데이터베이스(DB:database): 저장소
데이터베이스 관리 시스템(DBMS: DataBase Management System): 데이터베이스를 관리하는 소프트웨어
데이터베이스 시스템(DBS: DataBase System): 데이터베이스와 데이터베이스 관리 시스템들을 모두 포함하는 개념
 
일반사용자들도 데이터베이스 사용자라고 볼 수 있음
 
- 일반 사용자 = 최종 사용자(end user)
디자인, 코딩 등 어떤 서비스를 제공해야 한다면 최종 사용자가 가장 중요함
포인트 적립 같은건 데이터를 쌓는 것이다
초급 사용자: 데이터베이스나 DBMS의 존재를 알지 못하는 관련 지식이 없는 사용자
중급 사용자: 데이터베이스 기본 지식을 갖추고 필요할 경우 데이터 언어를 사용하여 데이터에 대한 처리를 직접 DBMS에 요청
 
- 응용프로그래머
전문지식을 가지고 응용 프로그램을 개발할 목적으로 데이터베이스를 접근하는 사용자 유형
 
데이터베이스 관리자(DBA: DataBase Administrator)
데이터베이스를 구축하고 데이터베이스 시스템을 자체적으로 운영 통제하는 유형
 
주요 역할
데이터베이스 시스템의 구성 요소 선정
데이터베이스의 구조 정의
물리적 저장 구조와 접근 방법 결정
무결성 유지를 위한 제약 조건 정의
보안 및 접근 권한 정책 결정
백업 및 회복 기법 정의
시스템 데이터베이스 관리
시스템 성능 감시 및 성능 분석
데이터베이스의 재구성
데이터베이스 관련 의견 조정과 분쟁 해결
 
*인트라넷: 단체의 직원만 접근 가능한 사설망
*사설망:  인터넷 어드레싱 아키텍처에서 사설 IP 주소 공간을 이용하는 네트워크
*이더넷: LAN, WAN 등 대부분의 네트워크 환경에서 절대 다수를 차지하는 프로토콜
 
데이터 언어

중급 > 데이터베이스 관리자로 갈수록 모델링능력과 DBMS 능력과 모델링능력이 중요해짐
SQL(쿼리, 대부분 select문) 능력은 중급부터 기본적으로 탑재해야 하는 능력이 됨
 
데이터 언어(data language)
DBMS를 통해서만 데이터베이스에 접근 가능, DMBS에 요청 내용을 전달하기 위한 도구
보통 표준데이터베이스언어인 SQL(Structured Query Langauge)을 의미함
 
데이터 언어의 분류
사용 목적에 따라 3가지 명령어(DDL(데이터 정의어), DML(데이터 조작어), DCL(데이터 제어어))로 나뉨
조작
조작어>정의어>제어어 이렇게 많이 씀
DDL(definition):
새로운 데이터베이스 구조를 정의하고 기존 데이터베이스 구조를 변경하는 명령어 집합
데이터베이스 구조를 표현하는 데이터베이스 스키마를 명세하기 위해 사용
스키마(계획/구조 라는 영어 단어 schema) 명세하다: 분명하고 자세하다
 
DML(manipulation):
데이터베이스 안의 데이터를 실제 조작하는 명령어 집합
DBMS에게 데이터의 입력, 수정, 삭제 및 검색을 요청하기 위해 사용
 
DCL(control):
데이터베이스를 제어하고 통제하기 위해 사용하는 명령어 집합
데이터베이스가 안전하게 오류 없이 동작하고 성능을 유지하도록 각종 제약이나 옵션을 설정함으로써 DBMS가 데이터베이스를 올바르게 관리하도록 함
commit, rollback을 많이 씀
 
데이터 모델의 종류
1. 계층형 데이터 모델(HDM: Hierarchical Data Model)
- 데이터 사이의 연관 관계를 물리적 위치 정보인 포인터로 표현하는 저장 방식
- 트리 형태의 계층 구조
장점: 검색 속도가 빠르기 때문에 일대다(1:n) 관계를 갖는 대용량 데이터베이스 처리에 유리
 
2. 네트워크형 데이터 모델(NDM: Network Data Model)
- 데이터 사이의 연관 관계를 포인터로 표현하는 저장 방식
- 계층형 모델
 
3. 관계형 데이터 모델(RDM: Relational Data Model) 가장 중요
테이블 형태의 저장 구조를 가지며 데이터 사이의 연관 관계를 테이블의 키(key) 열(column)을 통해 표현하는 저장 방식
장점: 연관된 데이터 사이에 기본키와 외래키를 통해 논리적 관련성을 포현함으로써 유연하고 이해하기 쉬움
단점: 유지보수가 힘든 점이 있다
 
4. 객체 지향형 데이터 모델(ORDM: Object Oriented Data Model)
 
 

객체 관계형: 실전에서 그다지 중요하지 않음
 
비관계형-관계형이 중요
 
스키마(Schema)
- 데이터베이스 안에 저장되는 데이터 구조와 제약 조건 등을 정의한 것
- 데이터베이스의 정적인 구성뿐만 아니라 동적인 유지 조건까지를  포함
- 스키마를 수정한다는 것은 설계를 수정하는 것
 
외부단계 고객
 
개념 단계 계획 짜기?
 
내부 단계 코드 짜기?
 
외부 스키마(external schema)
 
개념 스키마(conceptual schema)
보통 스키마라고 하면 개념 스키마를 의미
명세한 구조, 설계 도면
 
외부 스키마와 개념 스키마
 
인덱스는 속도 정렬을 위해 사용하는 개념 중요함
관계형에서는 트랜잭션?이 안된다 성능이 느려짐
 
데이터 사전
스키마의 한 종류
 
데이터베이스 객체는 중요함 (테이블과 열, 뷰, 인덱스, 사용자 권한 등)
뷰는 테이블로 이루어짐? 읽기전용 뷰테이블 보여지는 것 뷰는 읽기 전용임
수정할 수 있는 값은 아님 계산되어서 나오는 것일 뿐
 
독립성
자기만의 영역을 가지고 물리적 공간에 독립적인 설계를 해서 os, 언어에 영향을 받지 않고 질의문으로 데이터를 줄 수 있음
물리적/논리적으로 독립성이 적용됨
 
관계형 데이터 모델
데이터 모델의 구조 구성 요소
- 데이터 모델(data model)
- 현실 세게의 데이터를 명세하는 고유한 표현 방식이자 데이터 모델링을 위한 도구
- 데이터 구조와 연산, 제약 조건 3가지 요소로 구성
 
데이터 모델의 3요소
데이터 구조(data structure)
- 데이터를 어떤 형태로 저장하는지를 표현하는 추상적 표현
- 실제 저장 구조가 아닌 개념상의 저장 구조를 직관적으로 표현
연산(operation)
- 데이터 구조 안의 데이터를 어떤 방식으로 처리하는지를 표현
제약 조건(constraint)
- 데이터의 무결성을 지키기 위해  데이터를 저장할 때의 구조적 제약 사항과 연산을 적용할 때의 행위적 제약 사항을 표현하는 것
 
*테이블: 데이터베이스 안에 실제 데이터가 저장되는 형태
*무결성: 무결점, 정확성/일관성/유효성이 유지됨을 포함하는 것
 
관계형 데이터 모델
- 테이블 형태의 릴레이션(관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위)을 통해 데이터를 저장하고 데이터 간의 관련성도 표현
- 데이터베이스를 논리적 수준에서 이해하고 사용할 수 있도록 함
 

속성과 튜플
속성(attribute)
- 테이블의 열(column)
- 데이터를 표현하는 가장 작은 논리적 단위 (이런 애매한 것은 중요하지 않음)
 
튜플(tuple)
- 테이블의 각 행(row)
 
도메인(domain)
각 속성이 취할 수 있는 모든 값들의 집합을 정의한 것
 
카디널리티와 차수
- 각 릴레이션은 카디널리티와 차수를 통해 그 구성이 정의됨
 
카디널리티(cardinality)
 
차수(degree)
한 릴레이션 안에 있는 속성의 수
 
릴레이션 스키마(relation schema)
- 테이블의 첫 번째 행인 헤더 부분에 표현
 
릴레이션 인스턴스(relation instance)
- 특정 시점에서의 전체 튜플들의 내용 즉 릴레이션의 상태를 의미
 
튜플의 무순서성
- 릴레이션의 튜플 사이에 순서는 의미가 없음
 
제약 조건
릴레이션의 키(key) 중요
 
 

728x90
반응형