티스토리 뷰

Computer Science/Database

Database

kmj24 2021. 5. 30. 16:01

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의 내용이 자주 바뀌거나 증감
      • 분석 초기단계보다 상세설계 단계 또는 프로세스와 상관 모델링을 진행하면서 도출될 수 있다.
      • 주문내용, 취소내용 등

 

 

 

참조 : https://www.oracle.com/kr/database/what-is-database/

http://tcpschool.com/mysql/DB

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함