ahlight
개발 저장소
ahlight
전체 방문자
오늘
어제
  • 분류 전체보기 (27)
    • Java (5)
    • Spring (5)
    • JPA (2)
    • JavaScript (0)
    • Computer Science (10)
      • 디자인패턴, 프로그래밍 패러다임 (1)
      • 네트워크 (4)
      • 운영체제 (4)
      • 데이터베이스 (1)
      • 자료구조 (0)
    • 알고리즘 (0)
    • 프로그래머스 (0)
    • 백준 (0)
    • 서평 (3)
    • 회고 (1)
    • TIL (0)
    • 기타 (1)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 클린코드
  • Java
  • 넥스트스텝
  • 라즈베리파이4 #홈서버 #포트포워딩 #dhcp
  • TDD

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ahlight

개발 저장소

데이터베이스의 기본
Computer Science/데이터베이스

데이터베이스의 기본

2022. 10. 10. 16:40

1. 데이터베이스(DataBase) : 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음. 데이터베이스를 제어, 관리하는 통합시스템을 DBMS라고한다. 각 DBMS마다 정의된 쿼리 언어로 데이터들에 대한 CRUD등을 수행 할 수 있다.

 

2. 엔터티(Entity) : 사람, 장소, 물건, 사건, 개념 등 여러개의 속성을 지닌 명사를 의미. A가 B의 존재여부에 종속적이라면  A는 약한 엔터티, B는 강한 엔터티라고 할 수 있다.

 

3. 릴레이션(Relation) : DB에서 정보를 구분하여 저장하는 기본 단위이다. 엔터티에 관한 데이터를 릴레이션하나에 담아 관리. RDBMS에서는 테이블이라고 불리고, NoSQL DB에선 컬렉션이라 불린다.

 

4. 관계형, 비관계형데이터 베이스

종류 특징 예시
관계형 데이터베이스(RDBMS) * 레코드-테이블-데이터베이스 형태의 구조
* 트랜잭션, 데이터 정규화
* 정렬, 탐색, 분류가 빠름
* 무결성 보장
* 빅데이터를 처리하는데 부적합
MySQL, Oracle 등
비관계형 데이터베이스(NoSQL) * 도큐먼트-컬렉션-데이터베이스 형태의 구조
* 거대한 Map으로 key-value 형식을 지원
* PK, FK, JOIN등 관계를 정의하지 않음
* 빅데이터 처리하는데 적합
* 확장성이 뛰어나 검색에 유리함
* 복잡한 데이터 구조 표현 가능
MongoDB, Redis 등

5. 속성(Attribute) : 릴레이션에서 관리하는 구체적이며 고유한 이름을 갖는 정보. 회원이라는 릴레이션을 예로, 이름, 나이, 성별 등이 엔터티의 속성이 된다.

 

6. 도메인(Domain) : 릴레이션 포함된 각각의 속성들이 가질 수 있는 값의 집합. 성별이라는 속성엔 '남,여' 라는 값의 집합을 가질 수 있다.

 

7. 필드와 레코드

table

필드1 필드2 필드3 필드4
레코드1 레코드2 레코드3 레코드4
레코드5 레코드6  레코드7 레코드8
  • 테이블이라는 엔터티는 table이란 테이블로, 필드론 필드1,2,3,4를 가지고 있다. 
  • 테이블에 쌓이는 행 단위의 데이터를 레코드라고 부른다.
  • 필드타입 : 숫자, 날짜, 문자 // TEXT, BLOB(큰 데이터를 저장할 때 사용, TEXT는 큰 문자열, BLOB은 이미지, 동영상 등) // ENUM, SET (ENUM은 'x-small', 'small', 'medium', 'large', 'x-large' 형태로 쓰이며, 단일 선택만 가능하고 리스트에 없는 잘못된 값을 삽입 시 빈 문자열이 대신 삽입된다. x-small 등이 0,1 등으로 매핑되어 메모리를 적게 사용하는 이점이 있다. SET은 ENUM과 비슷하지만 여러개의 데이터를 선택 가능하고, 비트단위의 연산을 할 수 있으며 최대 64개의 요소를 집어넣을 수 있다는 점이 다르다.

8. 관계

종류 설명 화살표
1:1 관계 하나의 A는 하나의 B로 구성됨. ex) 유저<->이메일
1:N 관계 하나의 A는 하나 이상의 B로 구성됨.ex)유저<->상품
N:M관계 다른 관계들과는 다르게 중간에 하나의 테이블을 추가로 두어 각각 1:N 관계를 갖는 형태를 가진다. ex)학생<->강의 일때 학생, 학생_강의, 강의 3개의 테이블을 가진다.

9. 키

  • 정의 : 테이블간의 관계를 조금 더 명확하게 하고 테이블 자체의 인덱스를 위해 설정된 장치.
  • 관계

  • 유일성 : 중복되는 값이 없음
  • 최소성 : 필드를 조합하지 않고 최소 필드만 써서 키를 형성
  • 종류
기본키 유일성과 최소성을 만족하는키. 테이블의 데이터 중 고유하게 존재하는 속성. ex) 순번, 주민번호, 시퀀스 넘버 등 자연키 : 언제가는 변하는 속성을 가지며, 중복된 값들을 제외하며 중복되지 않는 것을 자연스레 뽑다가 나오는 키

인조키 : 인위적으로 생성한 키. 변하지 않음. ex) Oracle 시퀀스
외래키 다른 테이블의 기본키를 그대로 참조하는 값으로 개체와의 관계를 식별하는 데 사용  
후보키 기본키가 될 수 있는 후보들이며 유일성과 최소성을 동시에 만족  
대체키 후보키 중 기본키가 되지 못한 나머지 키  
슈퍼키 각 레코드를 식별 할 수 있는 유일성은 갖췄으나, 최소성을 갖추지 못함  

이미지출처: https://ggop-n.tistory.com/78

    ahlight
    ahlight

    티스토리툴바