2022-06-[10, 13](Section2_Database[설계_스키마/DB])

이상수·2022년 6월 17일
0

TIL_Database

목록 보기
2/3
post-thumbnail
  1. 시작하게 된 계기 및 다짐 😮
  • 이번 코드스테이츠의 백엔드 엔지니어링 개발자 부트캠프에 참여하게 되면서 현직개발자 분들의 빠른 성장을 위한 조언 중 자신만의 블로그를 이용하여 배운 것 들을 정리하는게 많은 도움이 된다 하여 시작하게 되었다.

    • 그 날 배웠던 것을 길지 않아도 좋으니 정리하며 복습하는 습관 기르기
    • 주말에 다음주에 배울 내용들을 예습
    • 코딩 문제와 java코드들은 꾸준히 학습
    • 자료구조를 이용한 알고리즘 문제 해결 학습
  1. 학습 목표 😮
목표결과
스키마 디자인 이해 및 생성O
앱에 필요한 테이블과 필드, 그리고 관계를 부여할 수 있다.O
1:N, N:N 관계를 이해하고, 데이터베이스에서 테이블을 조작O
Foreign Key, Primary Key에 대해 이해O
  1. 정리

설계


1. Schema / Query
 - Schema : 데이터 구성되는 방식과 서로 다른 엔티티 간의 관계
 - 엔티티(entities) : 고유한 정보의 단위 (데이터베이스의 테이블)
 - 필드 : 테이블의 목록
 - record : 테이블의 행






PK/FK 의미


# 기본키(primary key) : 테이블마다 가지고 있는 고유한 값(중복x, null x), 여러 열을 묶어서 기본키 설정가능
   외래키(foreign key) : 다른 테이블에서 가지고 있는 기본키를 참조하는 키






데이터 베이스 설계


- 1 : 1 관계 : 자주 사용하지 않고, 테이블 말고 직접 저장하는게 나을수도 있음
 - 1 : N 관계 : 하나의 레코드가 여러개의 레코드에 연결된 경우
                   관계형 데이터 베이스에서 가장 많이 사용
 - N : N 관계 : 여러개의 레코드가 다른 테이블의 여러 레코드와 관계가 있는 경우
                   해당의 경우 Join 테이블을 만들어서 관리 하는편
                   두 테이블의 해당 필드의 관계를 표현하는 테이블
 - 자기참조관계 : x : x 관계와 유사하지만 이는 다른 테이블의 관계를 나타날 때 사용






SQL 내장 함수

 - GROUP BY ~ HAVING : GROUP by로 조회된 결과를 필터링 하는 방법
 - ORDEY BY 2 : 2번쨰 필드를 기준으로 오름차순

ex) Code

 SELECT CustomerId, AVG(Total)
 FROM invoices
 GROUP BY CustomerId
 HAVING AVG(Total) > 6.00
      






  1. 피드백 😮
  • DB데이터의 관계를 잘 정리해 스키마디자인을 적절하게 짜야 좋은 DB를 만들 수 있다.
  • 문법들을 사용하는 것 보다 이 스키마 디자인을 적절히 해야 이를 따라 데이터베이스를 구성하는게 적절하므로, 이 스키마를 디자인을 잘 하는 연습이 필요할 것 같다. 특히 1:N, N:M관계의 데이터를 관계를 잘 설정해야 겠다.
  • Foreign Key 와 Primary Key는 DB의 중요한 개념 중 하나인데, 간단히 하여 Foregin Key는 Primary Key를 참조하여 생성하고 Primary Key는 중복이 허용되지 않는 특정 값이다.
  1. 앞으로 해야 될 것 😮
  • 매일 꾸준히 할 것
    • 꾸준히 velog 작성
    • Java 언어 및 Algorithm 공부(Coding-Test)
    • 틈틈히 운동 하기

  • 내일 해야 할 것
    • Spring Framework 기초에 대한 학습
    • 본격적으로 Spring Framework에 대해 학습을 하기전에 전체적으로 이게 어떤것인지, 왜 사용하는지에 대해 이해
profile
Will be great Backend-developer

0개의 댓글