빠르게 핵심만
[SQL] DBMS와 RDBMS 개념 설명 본문
1. DBMS(DataBase Management System)
데이터베이스를 관리하는 시스템으로서 데이터를 저장 및 유지 보수하고 이를 검색하는 시스템입니다.
· CRUD(Create, Read, Update, Delete)
· 대부분의 시스템은 CUD(업데이트) 보다 R(검색)의 빈도수가 많아 검색에 최적화를 신경 써야합니다.
· 빠른 검색을 위해서 데이터는 반드시 정렬(Sorting)이 되어 있어야 합니다.
· 정렬이 되어 있지 않다면 평균적으로 전체 데이터의 절반이 필요합니다(최선:1, 최악:N, 평균:N/2)
· 정렬이 되어 있을 경우 빠른 시간 안에 찾을 수 있습니다(O(NlogN) - O(N^2))
· 퀵정렬/힙정렬 계열이 주로 사용됩니다.
· 검색 속도를 높이기 위해 인덱스 자료구조를 사용합니다.
· 인덱스의 종류로 이진 검색(log2(N))와 B-Tree 계열(log3(N))이 있습니다.
· 상용 DBMS에서는 B-Tree 계열을 가장 일반적으로 많이 사용합니다.
· 데이터 추가, 수정 그리고 삭제할 때마다 정렬과 인덱스 업데이트가 발생합니다.
2. DBMS의 종류
· 계층형 데이터베이스
· 네트워크형 데이터베이스
· 객체지향 데이터베이스
· 객체관계형 데이터베이스(ORDBMS)
· 관계형 데이터베이스(RDBMS)
· NoSQL(Not Only SQL)
3. RDBMS(Relational DataBase Management System)
데이터를 테이블 단위로 관리하는 테이블(Table based) 기반의 DBMS를 말합니다.
· 테이블 - 컬럼 형태의 데이터 저장 방식입니다.
· 하나의 테이블은 여러 개의 컬럼으로 구성됩니다.
· 여러 테이블을 합쳐 큰 테이블을 생성(JOIN) 해서 필요한 정보를 검색합니다.
· 테이블과 테이블 간의 연관관계(주로 외래 키)를 이용해 필요한 정보를 구하는 방식입니다.
· 테이블끼리 중복정보는 최소화 시키는 것이 중요합니다.
- 동일한 데이터가 여러 군데 중복되어 존재하면 데이터의 수정 시 문제 발생 확률이 높아지기 때문입니다.
- 정규화(Nomalize) → 정규형
4. 테이블 용어정리
· 테이블(Table)
테이블(Table) = 관계(Relation)
· 튜플(Tuple)
튜플(Tuple) = 행(Row) = 레코드(Record)
테이블에 있는 속성(Arrtibute)들의 집합입니다.
튜플(Tuple)의 수를 카디널리티(Cardinality)라고 부릅니다.
· 속성(Attribute)
속성(Attribute) = 열(Column) = 필드(Field)
테이블을 구성하는 정보들이며 RDBMS를 구성하는 개체(Entity)의 특성을 기술합니다.
속성(Attribute)의 수는 차수(Dgree)라고 부릅니다.
· 도메인(Domain)
각 속성(Attribute)에서 가질 수 있는 값들의 집합입니다.
'SQL' 카테고리의 다른 글
[HackerRank] Weather Observation Station 7 (0) | 2024.02.25 |
---|---|
[HackerRank] Weather Observation Station 6 (0) | 2024.02.25 |
[SQL] 스키마(SCHEMA) 수정 및 삭제 (0) | 2021.10.26 |
[SQL] 제약 조건(Constraint) (0) | 2021.10.19 |
[SQL] SQL 개념과 종류 (0) | 2021.10.06 |