[Node.js] 4주차 데이터베이스

이정수·2023년 4월 9일
0

Node JS study 기록용

목록 보기
3/5
  • DB(DataBase)
    • 엑셀과 DB의 유사점 행과 열로 이루어진 데이터의 집합체라는 데이터구조의 유사성이 있다.
  • DBMS(DataBase Management System) 응용 프로그램들이 데이터베이스를 공유하며 사용할 수 있는 환경을 제공하는 소프트웨어, DB 구성, 정의, 유지 및 쿼리 언어 지원 등의 DB를 사용하기 위한 작업들을 관리
    • DBMS의 장점
      1. 데이터 중복 및 불일치 최소화
      2. 데이터의 표준화
      3. 데이터의 보안 향상
      4. 데이터의 일관성 및 무결성 유지
      5. 다양한 유형의 장애로부터 DB 복구 가능
      6. 시스템 개발 및 유지보수 비용 절감
      7. 동시 접근 가능
    • DBMS의 단점
      1. 높은 비용 및 고급 인력 필요
      2. 자료 처리의 복잡화
      3. 복잡한 백업 및 복구
  • RDB(Relational DataBase) 관계형 데이타 모델에 기초를 둔 데이터베이스 특징
    1. 데이터의 분류, 정렬, 탐색 속도가 빠릅니다.

    2. 오랫동안 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장해 줍니다.

    3. 기존에 작성된 스키마를 수정하기가 어렵습니다.

    4. 데이터베이스의 부하를 분석하는 것이 어렵습니다.

      관계형 데이터 모델? → 데이터를 구성하는데 필요한 방법 중 하나로 모든 데이터를 2차원의 테이블로 표현한다. 원하는 내용을 찾고 정렬하기 도 좋고 미리 예상되는 데이터흐름에 맞게 설계해두기 때문에 안정성도 높다. 작은 규모의 서비스나, 기업규모의 큰 서비스를 만들 때에도 확장설계를 적용하기 편리하다.

  • RDBMS(Relational DataBase Management System)
    • RDB를 생성하고 수정하고 관리할 수 있는 소프트웨어이다.

    • RDBMS는 Relational DataBase Management System의 약자로 관계형 모델을 기반으로 하는 DBMS 유형이다. 관계형 모델이란?

    • RDBMS의 테이블은 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있다.

      ex) 오라클RDB, MySQL, MSSQL,IBM의 DB2

  • DateBase 용어
    • Schema(스키마) 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술 테이블을 디자인하기 위한 청사진.
      • 외부 스키마 = 서브스키마, 사용자뷰 • 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이타베이스의 논리적 구조를 정의
      • 개념 스키마 단순 스키마 라고 하면 개념스키마를 의미 개관이나 조직체의 관점에서 데이터베이스를 정의한 것. • 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다
      • 내부 스키마 물리적 저장장치의 입장에서 본 데이터베이스 구조 • 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마
    • Table(테이블)
    • Row(행) 행은 관계된 데이터의 묶음을 의미. 한 테이블의 모든 행은 같은 수의 열을 가진다.
    • Column(열) 각각의 열은 유일한 이름을 가지고 있으며, 자신만의 타입을 가진다.
    • Key(키) 행의 식별자로 이용되는 열을 키(primary key)라고 한다. 테이블에 저장된 레코드를 고유하게 식별하는 후보 키(candidate key) 중에서 데이터베이스 설계자가 지정한 속성을 의미
      • 슈퍼키 유일성을 만족하는 키(학번+이름, 주민등록번호+학번) 어떤 속성끼리 묶던 중복값이 안나오고 서로 구별되도록
      • 후보키 유일성과 최소성을 만족하는 키, (주빈등록번호, 학번) 슈퍼키들 중에서 속성이 최소한의 개수로 구별될수 있어야 함.
      • 기본키 후보키에서 선택된 키, NULL값이 들어갈 수 없고, 기본키로 선택된 속성은 동일한 값이 들어갈 수 없다. 테이블에서 오직 1개만 지정할수 있고 , 최소성과 유일성을 만족하는 속성.
      • 대체키 후보키들 중에서 기본키로 선택되지 않은 키
      • 외래키 어떤 테이블간의 기본키를 참조하는 속성, 테이블간의 관계를 나타내기위해서 사용된다.
    • Index(인덱스)
      추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조
      테이블의 모든 데이터를 검색하게 되면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조인 인덱스를 생성하여 빠르게 조회할수 있도록 돕는다.
  • 유일성과 최소성 유일성: 하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질 최소성 : 키를 구성하는 속성들 중 꼭 필요한 최소한의 속성들로만 키를 구성하는 성질
  • DB 간의 관계
    • 1:1
    **각 전화번호가 단 한 명의 유저와 연결되어 있고, 그 반대도 동일하다면, Users 테이블과 Phonebook 테이블은 1:1 관계(One-to-one relationship)이다.**
    
- 1:N
  
    
- N:M
    
    여러 개의 레코드가 다른 테이블의 여러 개의 레코드와 관계가 있는 경우
    

    
  • 정규화: 이런게 있구나 정도로만!
    • 정규화의 목적 정규화: 데이터 중복성 및 종속성 배체의 원칙을 공식화한 이론
      • 데이터 구조의 안정성을 최대화하기 위함이다.
      • 어떠한 릴레이션이라도 데이터베이스 내에서 표현할 수 있게 만든다.
      • 효과적인 검색 알고리즘을 생성할 수 있다.
      • 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지한다.
      • 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.
    • 정규화 과정
      • 1NF
      • 2NF
      • 3NF
      • BCNF
      • 4NF
      • 5NF
  • ERD
    • Entity 시스템에 따라 다름. 사람, 장소, 사건 오프젝트..등이 될수 있다.
    • Attribute 특성, entity의 관계, 성격
    • Relationship entity간의 상호작용
    • 표기법
  • [예습]SQL 문법: DML의 SELECT 위주로 학습
    • DDL
      • CREATE
      • ALTER
      • DROP
      • TRUNCATE
    • DML
      • INSERT
      • SELECT
      • UPDATE
      • DELETE
    • DCL
      • GRANT
      • REVOKE
    • TCL
profile
keep on pushing

0개의 댓글