[BE] Database

J.A.Y·2024년 2월 5일
0

Back-end

목록 보기
1/3
post-thumbnail

웹이 커지고 이용하는 사람들이 많아지면 그 많은 데이터들을 어디에 저장하고 또 어떻게 관리할 수 있을까요?

위의 질문에 대한 답이면서, 개발자에게 필수 지식인 'Database', DB에 관해 알아보겠습니다.

데이터를 저장하는 방법에는 크게 2가지가 있습니다.
하나는 아주 오래전에 사용했던 방법으로, Microsoft Excel 같은 파일 시스템 방식입니다.

❗하지만 데이터 중복이나 데이터 불일치 발생❗

이로 인해 새로 등장한 것이 바로 오늘날의 데이터베이스입니다.

DB(Database)

데이터베이스란?

  • 데이터베이스는 데이터를 구조화해서 잘 정리된 데이터 꾸러미입니다. 데이터베이스는 일반적으로 데이터베이스 관리 시스템(DBMS)에 의해 제어됩니다.

  • 관계형 데이터베이스:
    데이터베이스 유형 중 가장 널리 사용되고 있는 것으로 DBMS에 관계가 추가된 것입니다.
    관계형 데이터 베이스에는 Oracle, SQL Server, DB2, (스타트업) MySQL, PostgreSQL, SQLite 등이 있습니다.

    오늘날 가장 널리 이용되고 있는 데이터베이스로 데이터를 효율적으로 처리하기 위해 일련의 테이블과 행, 열로 이루어집니다. 이를 통해 데이터를 더욱 쉽게 관리 및 수정하고 제어할 수 있습니다.

그럼 DATABASE를 이루고 있는 것들을 살펴볼까요?

  1. 열 Column : 테이블의 Atrribuete 속성입니다.

  2. 행 row: 테이블의 record 또는 tuple 이라고 불립니다.

  3. 테이블 (Table, Relation) : 테이블은 여러 속성과 tuple로 이루어져 있습니다.

  4. key : 데이터베이스의 튜플을 찾거나 순서대로 정렬할 때, 구분하고 정렬의 기준이 되는 속성입니다.

    Key는 튜플을 식별할 때 사용하는 속성이면서 동시에 테이블간 관계를 맺는 데도 사용합니다. 예를 들어, 고객과 주문이라는 각각의 테이블에 '고객번호'라는 key를 공유해서 두 테이블을 연결시켜주는 것입니다.

  5. 기본키 (PK, Primary Key) : 메인 키로 특정 테이블에서 특정 튜플을 유일하게 구별할 수 있는 속성으로 일반적으로는 Null이나 중복으로 쓰일 수 없습니다.

    Null이란? 입력되지 않은 값 또는 알 수 없는 값

  1. 외래키 (Foreign Key, FK: 다른 테이블의 기본키를 참조할 때 사용하는 속성입니다. 기본키값과 외래키값의 양쪽 테이블의 도메인은 서로 동일해야 합니다. 즉, 기본키값이 바뀌면 외래키값도 바뀌어야 합니다. 외래키는 기본키와 달리 Null이나 중복으로 쓰일 수 있습니다.

    외래키는 기본키를 참조하기에 참조하는 기본키가 바뀔 경우 외래키 또한 어떻게 업데이트해 줄 것인지 지정해줘야 합니다.

    그래서 있는 것이 외래키 제약조건입니다. 외래키 제약조건을 정의해주면 테이블간 관계가 생성됩니다.

**외래키 제약조건**
: 무결성을 유지하면서 데이터의 일관성까지 보장하기 위해 사용되는 규칙입니다.

  1. ON DELETE: 외래키가 참조하는 테이블의 행이 삭제될 때 어떻게 대응할지를 정의할 떄 사용합니다.
  2. ON UPDATE: 외래키가 참조하는 테이블의 기본키가 갱신될 때 어떻게 대응할지를 정의합니다.

ON UPDATE 옵션:

  • CASCADE: 외래키를 참조하는 테이블의 해당 행도 함께 삭제 및 갱신합니다.
  • SET NULL: 외래키를 참조하는 테이블의 해당 행의 외래키의 값을 Null로 설정합니다.
  • SET DEFAULT: SET NULL과 유사하지만 외래 키 값을 NULL로 설정하는 대신 기본값으로 설정됩니다.
  • RESTRICT: 외래키를 참조하는 테이블의 해당 행을 삭제 및 수정하지 않습니다. 삭제 및 갱신을 차단합니다.
  • NO ACTION: RESTRICT와 비슷하지만, 일부 데이터베이스 시스템에서는 무시됩니다.
profile
Done is better than perfect🏃‍♀️

0개의 댓글