Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

ddodoi 님의 블로그

5주차-파트03: DBMS, SQL, DB에서의 연관관계 본문

웹풀스택 일일정리

5주차-파트03: DBMS, SQL, DB에서의 연관관계

ddodoi 2024. 9. 12. 23:11

CHAPTER 1. 데이터베이스

 

데이터베이스(Database: DB)

데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체를 데이터베이스(Database: DB)라고 한다. 데이터를 구조화하여 관리함으로써 데이터 중복을 막고, 효율적이고 빠른 데이터 연산을 가능하게 한다.

 

 

 

✔️DBMS

데이터베이스를 운영하고 관리하기 위한 DBMS(DataBase Management System)를 통해 데이터베이스를 사용한다.

 

 

 

 

✔️RDBMS(Relational DBMS)

데이터 간 "관계"를 이용하여 데이터베이스의 정보를 구조화 시킨 것

 

 

     - Primary Key: PK(기본키)

       해당 테이블의 각 row(행)을 유니크(=유일)하게 구별할 수 있는 key값

 

 

     - Foreign Key: FK(외래키)

        A테이블에서 B테이블의 데이터를 찾아가고 싶을 때, 사용하는 key값

       (최대한 B테이블의 PK값을 A테이블의 FK로 쓰는것이 이상적) 

 

 

cf. 정규화 = 테이블을 쪼갠다.

장점 : 중복이 최소화되고 데이터 무결성(데이터의 정확성, 일관성, 유효성) 이 유지된다, 데이터 수정이 용이해진다.

단점: 하나의 테이블 안에 모든 정보가 다 있는게 아니기 때문에 직관성이 떨어질수도 있다.

 

 

 

 

✔️SQL(Structured Query Language)

SQL은 데이터베이스에 연산을 요청하기 위해 사용되는 언어로 데이터를 생성, 조회, 수정, 삭제 등과 같은 기능을 수행할 수 있다.

 

대표적인 SQL은 다음과 같다.

  • 데이터 삽입: INSERT
  • 데이터 조회: SELECT
  • 데이터 수정: UPDATE
  • 데이터 삭제: DELETE

 

 

 

 

 

 

CHAPTER 2. 데이터베이스 연관관계 

✔️연관관계

: RDBM란 전제하에 데이터베이스 "테이블 간 어떤 관계를 가지고 있는지".

 

종류 : 1:1, 1:N, N:M

 

게시글 VS 사용자

1) 사용자 1명 : 게시글 여러개   ->  1 : N

2) 게시글 1개 : 사용자 1명   -> 1 : 1

 

 

게시글 - 사용자 테이블 분리

-게시글 테이블을 보고 사용자 테이터를 확인 : 연관 관계

=> 게시글 테이블을 보고 사용자랑 어떤 관계인지

-사용자 테이블을 보고 게시글 데이터를 확인 X 

 

 

현업에 계신분들? 설계를 잘 하나 "DBA"

+ 구현을 들어가보면 sql이 꼬일때, 너무 많은 sql이 필요할때, sql이 길때

=> 설계를 뜯어고치면 된다.

 

 

 

 

CHAPTER 3. CLI방식으로 데이터베이스 관리

 

✔️Docker로 mariadb 실행하기(CLI 방식)

1) docker앱 실행시키고 mariadb돌린후 cmd창을 켜 다음 명령어 순서대로 입력

 

     docker exec -it mariadb /bin/bash

     mariadb -u root -p

     root

 

 

 

 

 

https://ddodoi.tistory.com/8

 

2주차-파트06: 데이터 베이스

const mariadb = require('./database/connect/mariadb'); mariadb.connect()​npm install mysql --saveChapter1. 데이터베이스란?데이터가 통합하여 효율적으로 관리하기 위한 데이터 집합체를 데이터베이스(DataBase: DB)라고

ddodoi.tistory.com