관계형 데이터베이스개요
데이터베이스(DataBase: DB)
여러 개의 연관된 데이터를 구조화하여 효율적인 처리를 할 수 있도록 관리
데이터베이스는 일반적으로 테이블, 열, 행 등의 구조로 데이터를 저장하고
데이터의 조회, 생성, 수정, 삭제의 작업을 수행할 수 있다.
다양한 종류가 있고 관계형 데이터베이스(RDBMS), 비관계형 데이터베이스(NoSQL)이 대표적이다.
관계형 데이터베이스는 테이블 간의 관계를 이용하여
데이터를 저장하고 관리하는 방식이고 SQL을 사용하여 조작을 한다
비관계형 데이터베이스는 테이블 간의 관계를 갖지 않고
문서 형태로 데이터를 저장하고 관리하는 방식이다.
데이터베이스 종류
관계형 DB (Relational DB)
- PostgreSQL
- MariaDB
- MySQL
- Oracle
- SQL Server
NoSQL DB (NotOnly SQL DB) + Vector DB
- Redis
- mongoDB
- Elastic Search
- Amazon Dynamo
- Pinecone
- Document DB
- 데이터를 Document 기반으로 XML, JSON과 유사한 형식으로 저장
- 스키마가 유동적으로 레코드마다 각각 다른 스키마를 저장
- 문서 형식을 저장하거나 검색에 유리
- ex. MongoDB, Elastic Search, Apache Cosmos, CouchDB - Column Stroe(Wide Column) DB
- 단일 열(Column) 내부에 중첩 Key-Value 세트로 저장
- 각 열에 Key-Value 형식으로 저장되고 컬럼 패밀리(column Families)라는 열 집합체 단위로 데이터 처리
- 압축 및 집계처리(Sum, Avg, Count 등)에 유리하고 쿼리 조회/적재 성능 이 좋음
- ex. Apachee Cassandra, Hbase, Google Bigtable, Azure Table Storage - Graph DB
- 데이터를 노드(Node)와 엣지(Edge), 속성(Attribure)로 저장
- 노드간의 링크(Link)를 통해 상관관계를 표시하여 탐색
- 조인(Join) 없이 빠른 관계 탐색 가능
- Neo4j, AgensGraph, Amazon Neptune - Key-Value Store
- 속성을 Key(속성) : Value(값)의 쌍으로 정의하여 데이터를 배열 형태로 저장
- Key안에 (Column, Value) 형태의 여러 필드(Column Familes) 가능
- 단순한 구조로 속도가 빠르며 분산 저장에 유리
- ex. Redis, Memcached, Amazon Dynamo
데이터베이스의 SQL
SQL(Structured Query Language)은 데이터베이스에서 데이터의 정의, 조작, 제어하기 위해 사용하는 언어
- DDL(Data Definition Language)
- DML(Data Manipulation Language)
- DCL(Data Control Language)
속성 | 설명 | 주요 명령어 |
DDL(데이터 정의 언어) | 데이터베이스나 테이블 등을 생성, 삭제하거나 그 구조를 변경하기 위한 명령어 | CREATE, ALTER, DROP |
DML(데이터 조작 언어) | 데이터베이스에 저장된 데이터를 처리하거나 조회, 검색하기 위한 명령어 | INSERT, UPDATE, DELETE, SELECT 등 |
DCL(데이터 제어 언어) | 데이터베이스에 저장된 데이터를 관리하기 위하여 데이터의 보안성 및 무결성 등을 제어하기 위한 명령어 | GRANT, REVOKE 등 |
DDL(데이터 정의 언어)
- CREATE - 새로운 데이터베이스 관계 (테이블), VIEW, 인덱스, 저장 프로시저 만들기
- DROP - 이미 존재하는 데이터베이스 관계(테이블), 뷰, 인덱스, 저장 프로시저를 제거한다.
- ALTER - 이미 존재하는 데이터베이스 개체에 대한 변경, RENAME의 역할을 한다.
- TRUNCATE - 관계 (테이블)에서 데이터를 돌이킬 수 없는 제거
DML(데이터 조작 언어)
- SELECT - 검색 (질의) 시 사용
- INSERT - 삽입 (등록) 시 사용
- UPDATE - 업데이트 (수정) 시 사용
- DELETE - 삭제 시 사용
DCL(데이터 제어 언어)
- GRANT - 특정 데이터베이스 사용자에게 특정 작업을 수행 권한을 부여
- REVOKE - 특정 데이터베이스 이용자에게 부여한 특정 권한을 박탈
- CONNECT- 데이터베이스 또는 스키마에 연결하는 권한
- SELECT - 데이터베이스에서 데이터를 검색하는 권한
- INSERT - 데이터베이스에 데이터를 등록할 수 있는 권한
- UPDATE - 데이터베이스의 데이터를 업데이트할 수 있는 권한
- DELETE - 데이터베이스의 데이터를 삭제할 수 있는 권한
- USAGE - 스키마 또는 함수와 같은 데이터베이스 개체를 사용할 수 있는 권한
관계형 데이터베이스(RDB, Relatioanl DB)
관계형 데이터베이스는 현재 가장 많이 사용되고 있는 데이터베이스의 한 종류이다.
관계형 데이터베이스란 테이블로 이루어져 있으며, 이 테이블은 키(Key)와 값(value)의 관계를 나타낸다.
데이터의 종속성을 관계(Relationship)로 표현한 것이 관계형 데이터베이스의 특징이다.
ERD(Entity Relationship Diagram)
Entity(엔티티)
테이블을 구성하는 객체 구성성분
Relationship (관계)
Entites의 관계를 나타내는 것
- 일대일 관계(One-to-One) : 한개의 엔티티가 다른 엔티티에 1개를 가지는 관계
- 일대다 관계(One-to-Many) : 하나의 엔티티가 다른 엔티티를 1개 이상을 가지는 관계
- 다대다 관계(Many-to-Many) : 여러 개의 엔티티가 다른 엔티티를 1개 이상을 가지는 관계
Diagram (도표)
Entities들의 관계들을 시각화하여 보여주는 도면(일종의 프로그램 설계 도면)
ERD(Entity Relationship Diagram) - IE 표기법
Entity
Attribute
Relation
기본키 - PK (Primary Key) : 엔티티의 행을 식별할 수 있는 index
외래키 - FK (Foriegn Key) : 두 엔티티를 연결할 수 있는 attribute
파란색 박스가 PK 이고 빨간색 박스는 FK 이다
본 후기는 정보통신산업진흥원(NIPA)에서 주관하는 <AI 서비스완성! AI+웹개발 취업캠프 - 프론트엔드&백엔드> 과정 학습/프로젝트/과제 기록으로 작성되었습니다.
'코딩캠프 > AI 웹개발 취업캠프' 카테고리의 다른 글
[AI 웹개발 취업캠프] 23.08.07 과제 (0) | 2023.08.07 |
---|---|
[AI 웹개발 취업캠프] 23.08.03 과제 (0) | 2023.08.03 |
[AI 웹개발 취업캠프] 23.08.02 과제 (0) | 2023.08.02 |
[AI 웹개발 취업캠프] 12Day - Python(2) (0) | 2023.08.01 |
[AI 웹개발 취업캠프] 23.08.01 과제 (0) | 2023.08.01 |