티스토리 뷰
Database, DB
- 여러 사람이 공유하여 사용할 목적으로 체계화하여 관리하는 데이터의 집합.
- 작성된 카테고리별 통합 정보를 저장하여 운영할 수 있는 공용 데이터의 묶음
- 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합
- DBMS에 의해 관리 된다.
- Data의 작성 및 Query 작업에 구조화 된 질의언어인 SQL을 사용한다.
SQL(Structured Query Language)이란?
- SQL은 데이터를 Query, 조작 및 정의하고 액세스 제어를 제공하기 위해 거의 모든 Relational DB에서 사용되는 언어이다.
- 목적에 따라 3가지 로 나눈다.
종류 | 역할 | 예시 |
DDL(Data Definition Language) | DB 테이블 생성, 삭제, 업데이트 등 | CREATE, ALTER, DROP 등 |
DML(Data Manipulation Language) | DB 데이터 조회, 처리 등 | INSERT, UPDATE, DELETE, SELECT 등 |
DCL(Data Control Language) | 보안성, 무결성 제어 | GRANT, REVOKE 등 |
DB의 종류
- 관계형 DB : Row, Column으로 이루어진 테이블 집합으로 구성된다.(mysql, oracledb, mssql, sqlite, postgresql 등)
- 객체지향 DB : Data가 Object형태로 표현된다.
- 분산 DB : 서로 다른 위치의 둘 이상의 파일로 구성되며, 물리적으로 동일한 위치의 여러 컴퓨터에 저장되거나, 다른 네트워크에 분산될 수 있다.(mongodb, redis 등)
- 데이터 웨어하우스 : 데이터의 중앙 저장소인 데이터 웨어하우스는 빠른 Query 및 분석을 위해 설계된 DB이다.
- NoSQL DB : 비 정형 및 반 정형 Data를 저장하고 조작 할 수 있는 DB, Web Application이 복잡해지며 인기가 높아짐
- Graph DB : 그래프 DB는 Entity 및 Entity간 관계 측면에서 Data를 저장한다.
- OLTP DB : 여러 사용자가 수행하는 많은 수의 트랜잭션을 위해 설계된 고속 분석 DB이다.
그 외 오픈소스 DB, 클라우드 DB, 다중모델 DB, 문서/Json DB, 자율운영 DB 등 다양한 DB가 있다.
DBMS(Database Management System)
- DB와 최종 사용자 또는 프로그램 간의 Interface역할을 수행.
- 사용자가 정보의 구성 및 최적화 방법을 검색, 업데이트, 관리할 수 있도록 함.
- 모니터링, 튜닝, 백업, 복구 등 다양한 관리작업을 수행
- Mysql, MS Access, MS SQL Server, Oracle DB 등이 있다.
DB의 역할
- 사용자의 질의에 대한 즉각적 처리와 응답이 이루어 진다.
- Create, Update, Delete를 통해 항상 최신의 Data를 유지
- 사용자들이 원하는 데이터를 동시에 공유할 수 있도록 한다.
- 사용자가 원하는 데이터를 내용에 따라 참조할 수 있다.
- Application과 DB는 독립된 시스템이므로, 데이터의 논리적 구조와 Application은 별개로 동작된다
DB의 구성
Schema
- DB의 구조 및 제약조건을 전반적으로 명세한 것을 의미.
- 속성(Attribute), 튜플(Tuple), 개체(Entity), 관계(Relation)에 대한 정의 및 제약조건 포함
User name | User email | User password | Created date | Updated date |
user1 | user1@google.com | 1234 | 2021/05/01 | 2021/05/30 |
user2 | user2@google.com | 1234 | 2021/05/01 | 2021/05/30 |
user3 | user3@google.com | 1234 | 2021/05/01 | 2021/05/30 |
- 위와 같은 DB가 있을 경우 Attribute는 table의 header에 있는 식별자에 해당된다.
- Tuple은 Table body의 행에 해당된다.
- Entity는 Table body의 cell에 해당된다.
- Relation은 RDB에서 정보를 구분하여 저장하는 기본 단위이다.
- 외부 스키마, 개념 스키마, 내부 스키마로 나누어진다.
- 외부 스키마 : 유저와 접촉하는 단계이다. User입장에서 필요로 한느 DB의 논리적 구조를 정의한다. 서브스키마 라고도 함. SQL를 사용하여 DB를 사용한다.
- 개념 스키마 : DB의 전체적인 논리적 구조이다, 모든 Application, User가 필요로 하는 데이터를 종합하여 하나만 존재한다
- 내부 스키마 : 물리적인 저장 장치에 밀접한 단계이다. 실제로 DB에 저장될 물리적인 구조를 정의하고, Data표현 방법, 내부 Record의 물리적 순서 등을 나타낸다.
Key
- Tuple을 식별하기 위한 하나 이상의 Attribute 또는 Attribute의 집합이다.
- 유일성(하나의 key로 하나의 tuple을 유일하게 식별)과 최소성(식별에 필요한 attribute로만 구성)을 만족한다.
- Candidate key(후보키) : tuple을 식별하기 위해 사용하는 Attribute의 부분집합.
- Primary key(기본키) : 후보키에서 선택되어 사용되는 main key, not null이다.
- Alternate key(대체키) : Primary key를 제외한 나머지 key들를 의미
- Super key : 각 행을 유일하게 식별할 수 있는 하나 이상의 속성 집합, 유일성만 만족하면 된다.
- Foreign key(외래키) : 하나의 DB테이블의 Attribute 중 다른 DB테이블의 행을 식별할 수 있는 key
Entity
- 실체 또는 객체를 의미한다. 사람, 장소, 물건, 사건, 개념 등과 같은 명사이다.
- entity는 어떤 것에 해당된다.
- 종류에 따른 분류
- Tangible Entity: 물리적인 형태가 존재하며, 안정적이고 지속적으로 활용됨.
- Conceptual Entity: 물리적인 형태는 존재하지 않고, 관리해야 할 개념적인 정보로 구분이 된다.
- Event Entity: 사건이 진행됨에 따라 발생된다.
- 발생 시점에 따른 분류
- 기본/키(Fundamental/Key) Entity
- 다른 Entity에 영향을 받지 않는 독립적으로 생성되는 Entity
- 해당 이벤트에 원래 존재하는 정보
- Entity와의 관계에 의해 생성되지 않음
- ex) 고객, 상품 등
- 중심(Main) Entity
- 기본 Entity로 부터 발생됨
- 기본 Entity와 행위 Entity 중간에 위치
- ex) 주문, 취소 등
- 행위(Active) Entity
- 2개 이상의 부모 Entity로부터 주로 발생.
- Entity의 내용이 자주 바뀌거나 증감
- 분석 초기단계보다 상세설계 단계 또는 프로세스와 상관 모델링을 진행하면서 도출될 수 있다.
- 주문내용, 취소내용 등
- 기본/키(Fundamental/Key) Entity
참조 : https://www.oracle.com/kr/database/what-is-database/
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com