728x90
반응형

DataBase 7

[DB] DataBase 정규화

오늘은 DB의 기본인 정규화에 대해서 알아보겠다. 이것은 유튜브 코딩애플님의 데이터 정규화가 뭔지 설명해 보세요 라는 영상을 기반으로 만들었다. 또한 몇몇 블로그도 참고 하였으며 밑에 출처를 써놓을 것이다. 정규화(Normalization) 정규화란 가장 기본적으로 테이블 간의 중복된 데이터를 허용하지 않는 것이다. 중복된 데이터를 허용하지 않음으로써 무결성을 유지 할 수 있고, 데이터베이스의 저장 용량을 줄 일 수있다. 특히 관계형 데이터베이스에서 많이 이용한다. 오늘 블로그에서 작성할 것은 제 1정규화, 제 2정규화, 제 3정규화이다. 순서대로 차례차례 알아보자. 1. 제 1정규화 제 1정규화란 테이블의 컬럼값이 하나의 원자를 가지도록 테이블을 분해하는 것이다. 예를 한번 보자. 회원번호 회원이름 프..

DataBase 2024.04.15

[MYSQL] PERCENTAGE_RANK 메서드(RANK 함수들), ORDER BY(다중정렬)

코딩 테스트를 하면서 집계함수 중 Percentage_rank라는 메서드를 발견을 하게 되었다. 필자는 SQL로 맛보는 데이터 전처리 분석(노수영 지음) 책을 가지고 SQL을 공부를 했었는데 여기서는 등수를 나타내는 함수를 3개로 표현을 했다. RANK() ROW_NUMBER() DENSE_RANK() 이 3가지 였다. 그렇기에 코딩 테스트 문제를 풀다가 %에 대한 rank를 나타내려고 했을 때 일단 rank로 순위를 준 후 그 값들을 제일 큰값에서 나누는 굉장히 힘들고 깨끗하지 못한 코드로 풀고 있엇다.ㅠㅠㅠ 그러다가 친구가 알려주면서 나의 편견이 깨지고 문제를 쉽고 간단하게 풀게 되었다. RANK() 함수 종류 그렇기에 오늘은 각종 RANK함수에 대해서 알아보자. RANK() : RANK() 함수는 ..

DataBase 2024.04.15

[MYSQL] DATE_FORMAT, CONCAT 메서드

오늘은 sql 코딩 테스트를 풀면서 새로 알게 된 것을 적어보려고 한다. 일단 알아볼 것은 날짜의 형태를 변경하는 DATE_FORMAT과 글자를 합칠 수 있는 concat 메서드이다. DATE_FORMAT DATE_FORMAT 부터 보자. MYSQL에서는 DATETIME을 YYYY-MM-DD hh:mm:ss의 형식으로 반환을 한다. MYSQL 공식문서 DATE and TIME Function MySQL :: MySQL 8.0 Reference Manual :: 14.7 Date and Time Functions 14.7 Date and Time Functions This section describes the functions that can be used to manipulate temporal val..

DataBase 2024.04.15

문의사항과 공지사항 게시판 ERD 설계

필자는 부트캠프에서 세미프로젝트를 하면서 웹개발을 진행하였다. JWT를 통한 회원가입과 로그인을 구현하였으며 공지사항 게시판, 문의사항 게시판을 만들었으며, 공지사항과 문의사항은 로그인을 하지않은 비인증 유저를 모두 볼 수 있게끔 권한을 설정하였고 문의사항의 댓글은 문의사항을 쓴 유저와 관리자만이 댓글을 달 수 있게 권한을 주었으며 공지사항은 super_user만이 글을 작성을 할 수 있게끔 만들었다. 여기에는 pagenation과 검색기능을 추가 하였고 세세한 권한에 대한 클래스를 새로 만들어서 적용했지만 너무 설명이 길기에 필자의 github을 올려 두겠다. API document와 여러 설명이 있으니 많이 보러 와주시면 감사하겠습니다!!! 필자의 git hub https://github.com/Y0..

DataBase 2024.04.14

[DB]ERD 설계

오늘은 강사님이 보내주신 유튜브를 보면서 ERD에 대해서 어떻게 공부를 해야하는지에 대해서 블로그를 작성해 보려고 한다. 필자가 세미 프로젝트를 진행하면서 서버와 API를 짜면서 데이터베이스 Django에서는 model이라고 하는데 이것을 어떻게 짜야할까를 고민했었었다. 하지만 아직 웹을 만들고 model을 만드는데 짜임새가 있지 않고 ERD에 대한 지식도 없었기에 세미 프로젝트를 했을 때에는 그냥 일단 만들었다. #User의 modelclass User(AbstractBaseUser, PermissionsMixin): # These fields tie to the roles! ADMIN = 1 MANAGER = 2 COMMON_USER = 3 ROLE_CHOICES = ( ..

DataBase 2024.04.11

MySql 메서드 공부

아직 Mysql을 처음 공부하는 입장에서 열심히 데이터 셋을 굴려보며 찾아본 메서드를 정리를 해놓고자 한다. 자꾸 정리하는 습관을 안들여서 그런지 까먹고 다시 찾아보기에 정리를 해서 다시 볼 수 있게끔 정리해야겠다!!! select * from (table name) : table name에서 모든 열을 가지고 오는 메서드 AVG(열명) : 해당하는 열의 평균값 AS (name) : 메서드를 썻을 때 새로운 열이 생기는데 그 생기는 열의 이름을 설정해주는 메서드 WHERE : where을 추가해 조건을 생성할 수 있다. BETWEEN : 특정 칼럽의 값이 시작점 ~ 끝점인 데이터만 출력할 수 있는 조건을 생성한다. (보통 조건문이기에 where문 다음에 자주 나온다.) round(amount(숫자형), ..

DataBase 2024.02.19

Mysql 로컬서버 활성화, 데이터셋 불러오기 오류(ascill)

우리는 Mysql을 사용하기 위해서 Mysql workbench라는 GUI를 다운받아서 사용했다. 다운로드 링크는 https://dev.mysql.com/downloads/workbench/ 이며 각자의 맞는 운영체제를 골라 설치를 진행하면 된다. 로컬서버를 키기 위해서 mysql.sever start 명령어를 써야한다. MySQL를 사용해서 데이터셋을 넣어주다 보면 맥에서는(M1) 간혹가다가 ascill 오류가 뜨는 경우가 생긴다. 그렇기에 그걸 해결하기 위해서 Mysql을 아예 종료를 해주고 cntr+Q를 이용해서 완전 종료후 터미널에 들어가서 위에 코드를 실행 해준 후에 open /Application/MySQLWorkbench.app 위의 코드를 실행해서 workbench를 켜주면 에러 없이 da..

DataBase 2024.02.19
728x90
반응형