데이터베이스

최찬호·2023년 3월 25일
0

DB

전자적으로 저장되고 사용되는 관련있는 데이터들의 조직화된 집합

조직화된 집합
1. 정해진 규칙에 맞추어 데이터를 빠르게 찾을 수 있다.
2. 불필요한 데이터 중복 생성 방지
3. 데이터 불일치 방지

DBMS (DataBase Management System)

DB를 관리하는 기능을 제공하는 소트프웨어 시스템이다. ex) Mysql, Oracle, PostgreSQL

Data Model

  • DB의 구조를 기술하는데 사용될 수 있는 개념들이 모인 집합
  • DB 구조를 추상화해서 표현할 수 있는 수단을 제공한다.
  • Data Model은 여러 종류가 존재하며 추상화 수준, DB 구조화 방식이 조금씩 다르다

Conceptual Data Models

  • 일반 사용자들이 쉽게 이해할 수 있는 개념들도 이뤄진 모델
  • 추상화 수준이 가장 높다
  • 비즈니스 요구사항을 추상화하여 기술할 때 사용
    ex) ERD. Entity간의 관계를 표현

Logical Data Models

  • 이해하기 어렵지 않으면서도 디테일하게 DB를 구조화 할 수 있는 개념들을 제공
  • 데이터가 컴퓨터에 저장될 때의 구조와 크게 다르지 않게 DB 구조화를 가능하게 함
  • 특정 DBMS나 storage에 종속되지 않는 수준에서 DB를 구조화할 수 있는 모델

Physical Data Models

  • 컴퓨터에 데이터가 어떻게 파일 형태로 저장되는지를 기술할 수 있는 수단을 제공


3-schema architecture

external schema

  • 실제 사용자가 바라보는 schema
  • external views or user views라고도 불림
  • 특정 유저들이 필요로 하는 데이터만 표현
  • 그 외 알려줄 필요가 없는 데이터는 숨김
  • logical data model을 통해 표현

conceptual schema

  • 전체 데이터베이스에 대한 구조를 기술
  • 물리적인 저장 구조에 관한 내용은 숨김
  • logical data model을 통해 표현

#물리적인 저장구조: Entity, constraint, data type, relationship

internal schema

  • 물리적으로 데이터가 어떻게 저장되는지 physical data model을 통해 표현
  • data storage, data structure, access path등등 실체가 있는 내용을 기술

관계형 데이터 모델

관계란 subset of Cartesian product 으로 중복을 허용하지 않는다는 의미이다.

domain: set of atomic values
attribute: domain이 relation에서 맡은 역활
tuple: 각 attribute의 값으로 이루어진 리스트
relation: set of tuples

특징

  • 중복된 tuple을 가질 수 없다.
  • relation의 tuple을 식별하기 위해 attribute의 부분집합을 key로 설정한다.
  • relation에서 tuple의 순서는 중요하지 않다. 순서가 변한다고 의미가 변하지 않는다.
  • 하나의 relation내의 중복된 attribute 이름은 존재할 수 없다. 순서는 중요하지 않다
  • attribute는 atomic해야 한다(composite or multivalued attribute 허용 안됨)

NULL

https://velog.io/@choibe/NULL-DB

JOIN

https://velog.io/@choibe/JOIN

ORDER BY & GROUP BY & Aggregate FN

https://velog.io/@choibe/ORDER-BY-aggregate-Fn-GROUP-By

Stored Function

https://velog.io/@choibe/Stored-Function

Stored Procedure

https://velog.io/@choibe/Stored-Procedure

Transaction

https://velog.io/@choibe/Transaction

Isolation Level

https://velog.io/@choibe/Isolation

FD #DB정규화의 기본

https://velog.io/@choibe/Functional-DependencyDB

정규화

https://velog.io/@choibe/%EC%A0%95%EA%B7%9C%ED%99%94

출처 - https://www.youtube.com/@ez. 쉬운코드

profile
체득하고 이해하자

0개의 댓글