데이터베이스의 기본

고장난 고양이·2022년 8월 10일
0

데이터베이스

목록 보기
1/5
post-thumbnail

데이터베이스(DB, Database)란?

일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음입니다.'
데이터를 모아둔 저장소 정도라고 생각하면 될듯싶네용

DBMS(Database Management System)

데이터베이스를 제어, 관리하는 통합 시스템

  • DBMS별 쿼리언어를 통해 삽입,삭제,수정,조회가 가능합니다.

  • 실시간 접근과 동시 공유가 가능합니다.

데이터베이스 관리 시스템의 특징

  1. 데이터의 독립성 
  • 물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다.

  • 논리적 독립성 : 데이터베이스는 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다.

  1. 데이터의 무결성 
    여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로 데이터의 유효성 검사를 통해 데이터의 무결성을 구현하게 된다.
    예를들면 입력 조건에 맞지 않는 입력값은 저장할 수 없도록 방지하는 기능이 있을 수 있다.
  1. 데이터의 보안성 
    허가된 사용자들만 데이터베이스나 데이터베이스 내의 자원에 접근할 수 있도록 계정 관리 또는 접근 권한을 설정함으로써 모든 데이터에 보안을 구현할 수 있다.
  1. 데이터의 일관성 
    연관된 정보를 논리적인 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터의 불일치성을 배제할 수 있다.
    또한 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있다.
  1. 데이터의 중복 최소화 
    데이터베이스는 데이터를 통합해서 관리함으로써 데이터 중복 문제를 해결할 수 있다.

출처: https://noahlogs.tistory.com/36 [인생의 로그캣:티스토리]

데이터베이스 용어

엔티티(Entity)

엔티티는 여러개의 속성을 지닌 명사를 의미합니다.
ex) 회원 -> 이름,아이디, 주소, 전화번호 등의 속성을 가짐

릴레이션(Relation)

릴레이션은 데이터베이스에서 정보를 구분하여 저장하는 기본 단위입니다.

  • 엔티티 -> 하나의 릴레이션 하나에 담아서 관리

  • 릴레이션 == '테이블' at 관계형데이터베이스

  • 릴레이션 == '컬렉션' at NoSQL

테이블 & 컬렉션

  • MYSQL : 레코드 -> 테이블 -> 데이터베이스

  • NoSQL : 도큐먼트 -> 컬렉션 -> 데이터베이스

속성(attribute)

릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보

ex) car -> (차 번호, 바퀴수, 차브랜드, 차종, 차이름, 차색깔 등) 속성을 지님

이중 요구사항을 기반으로 관리해야할 필요가있는 속성을 엔티티의 속성이 됨

도메인(domain)

도메인은 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값의 집합

ex) 차종 ->{suv,세단,해치백, 트럭 등}의 집합

필드(Field) & 레코드(Record)

레코드

  • 테이블에 쌓이는 행(row)단위의 데이터
  • 튜블이라고도함

필드

  • 필드 Field는 열 column에 해당하는 가장 작은 단위의 데이터를 의미합니다.
  • 이 필드는 엔티티의 속성을 표현합니다.

필드 타입

  • 숫자 타입

  • 날짜 타입

    • date : xxxx-xx-xx
    • datetime : xxxx-xx-xx hh:mm:ss -> 8바이트
    • timestamp : xxxx-xx-xx hh:mm:ss -> 4바이트
  • 문자

    • char -> 테이블 생성시 선언한 길이로 고정
    • varchar -> 가변 길이 문자열
  • text : 큰 문자열 저장에 쓰임 ex) 게시판의 본문

  • BLOB : 이미지나 동영상 저장에 쓰임 but 보통은 s3 에저장하고 varchar에 url을 박음

  • ENUM : enum

  • set : enum과 같지만 여러개의 데이터를 선택가능

관계

테이블 간의 관계를 정의

1:1

ex) 유저 당 유저 이메일

1:N

ex ) 유저 당 장바구니에 담은 제품

N:M

ex) 학생 & 강의 : 학생도 강의를 많이 듣고 강의도 여러명의 학생을 포함 가능

참고

책 - 면접을 위한 CS 전공지식 노트
http://www.yes24.com/Product/Goods/108887922

https://93jpark.tistory.com/23

profile
개발새발X발일지

0개의 댓글