프로그래머스 데브코스 웹 풀사이클 6주차 1,2일차

geun·2023년 12월 17일
0

데브코스

목록 보기
21/79
post-thumbnail

데이터베이스(DataBase)

DBMS

데이터베이스 관리 시스템이란 뜻으로, 데이터베이스를 운영, 관리한다.
Oracle, MySQL, MariaDB등이 있다.

SQL

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

RDBMS

관계형 데이터베이스 관리 시스템이란 뜻으로, 관계형 데이터베이스를 만들고 업데이트하고 관리할 때 사용하는 프로그램이다.

정규화

관계형 데이터베이스의 설계에서 중복을 최소화하기 위해 데이터를 구조화하는 프로세스를 말하는데, 단순히 말하면 데이터베이스를 쪼개는 것으로 볼 수 있다.
장점 : 중복이 적어진다.
단점 : 데이터를 찾기 위해 여러 테이블을 조회해야 할 수도 있다.

DB 연관관계

  • 1:1 관계 : 하나의 테이블이 상대 테이블과 반드시 단 하나의 관계만 가지는것
  • 1:N 관계 : 한 쪽 테이블의 레코드가 관계를 맺은 테이블의 여러 레코드와 연결되는 것
  • N:M 관계 : 양쪽 엔티티 모두에서 1:N 관계를 가지는 것

SQL 문법들

Primary Key

PK(기본키)라 칭하며, 테이블의 각 row를 유니크하게 구별할 수 있게 해주는 key값을 나타낸다.

Foreign Key

FK(외래키)라 칭하며, 한 테이블의 필드 중 다른 테이블의 row을 식별할 수 있는 키, 즉 다른 테이블의 값을 참조하기 위해 사용하는 키를 나타낸다. 대부분은 PK를 FK로 사용하고, 그렇지 않더라도 중복이 없는 Key를 사용해야 한다.

Not NULL

Null 값이 들어올 수 없다.

DEFAULT

값을 넣지 않았을 때, 기본으로 넣는 값이다.

AUTO_INCREMENT

자동으로 1씩 늘어나게 저장한다.

시간/날짜 타입들

  • DATE : 날짜만 (YYYY-MM-DD)
  • DATETIME : 날짜 + 시간 (YYYY-MM-DD HH:MM:SS)
  • TIME : 시간만 (HH:MM:SS)
  • TIMESTAMP : 날짜와 시간을 저장하며, 시스템 시간대에 맞게 일시를 저장한다.
    (YYYY-MM-DD HH:MM:SS) cf. UTC : 한국 시간 - 9

ALTER

테이블을 수정하기위해 사용하며, 컬럼을 추가 한다거나 삭제 한다거나, 컬럼의 속성을 변경해 줄수 있다.

JOIN

복수의 테이블을 결합하는 것으로, 데이터 조회 시 다른 테이블의 데이터를 함께 조회해야할 때 이용한다.

auto_increment_lock_mode

insert 실패시에 값이 자동으로 증가해 중간에 빈 값이 생기는데, 이것을 방지하기 위해 사용한다.
auto_increment_lock_mode는 0,1,2의 값을 가지는데
0일 때, 모든 insert를 대상으로 테이블 레벨의 AUTO_LOCK를 사용하고,
1일 때, 기본값으로 지정되어 있는 설정으로, 구문마다 락이 걸리지만 할당 프로세스 단위로 락이 걸린다.
2일 때, 락을 사용하지 않는다.

오늘의 소감

시간은 참 빠르다. "벌써 6주차?" 라는 생각이 든다. 이번주에는 저번주에 신청한 도서지원을 통해 자바스크립트 모던 딥다이브 책을 읽어봐야겠고, 슬슬 시간이 많아지니 프론트엔드 공부도 미리미리 시작해봐야겠다는 생각이 많다. 멘토님께서 하신 말씀중에 단기 목표를 세우고 그걸 달성하는것이 좋은 방법중 하나라고 하니까 앞으로 작은 목표 하나하나를 세워보고 달성해봐야 겠다.

0개의 댓글