목록전체 글 (89)
코딩세상
- 찾으려는 데이터가 기억나지 않을 때 책 제목이 정확하게 기억이 나지 않는다. 제목에 '왕자'라는 단어가 들어갔던 것 같은데... 이럴 땐 어떻게 책을 검색할 수 있을까? 우리는 가끔 무언가 찾고싶을 때 전체 내용이 기억나지 않을 수 있습니다. 그렇다면 이러한 문제를 SQL에서 데이터를 검색하다가 마주치면 우리는 어떻게 해결할 수 있을까요? - 제목이 '왕자'로 끝나는 책을 검색 book 테이블에서 '왕자'가 포함된 단어를 넣어 검색하면 위 사진처럼 우리가 원하는 데이터를 검색할 수 있습니다. 그러면 이를 위해 우리는 어떤 명령어를 사용해야될까요? - LIKE 바로 LIKE 명령어 입니다. LIKE 명령어의 경우 특정 문자가 포함된 문자열을 찾고 싶을 때 사용할 수 있는 명령어 입니다. 그렇다면 이 명..
- 조건이 여러 개일 때 우리가 조건을 검색하면서 한가지의 조건만을 설정해서 검색하는 것이 아니라 여러개의 조건을 통해 데이터를 검색하고 싶을 경우도 있을겁니다. 그러면 이 경우에는 어떻게 해야될까요? 성적을 저장하는 score 테이블에서 국어 성적이 90점 이상이거나 수학 성적이 80점 초과인 데이터를 검색해보겠습니다. - 성적 테이블 구조 우선 데이터 검색에 앞서 score테이블의 구조가 어떻게 이루어져 있는지 확인해보겠습니다. 위 데이터 테이블처럼 korean, math, english라는 컬럼을 가지고 있으며, 각각의 컬럼은 3개의 점수를 가지고 있는 것을 확인할 수 있습니다. - 여러 개의 조건을 사용해 데이터를 검색했을 때 그렇다면 여러개의 조건을 사용해 데이터를 검색하면 앞서 설명했던 한 개..
- 내가 원하는 데이터만 검색하는 방법 앞선 포스팅에서 확인한 book 테이블에서 제목이 '돈키호테'인 책을 검색해보겠습니다. - 조건을 만드는 방법 그렇다면 이러한 조건은 어떻게 만들 수 있을까요? 앞선 포스팅에서 설명했던 DISTINCT나 SELECT 같이 WHERE 명령어를 사용하면 됩니다. - 내가 원하는 데이터만 검색 했을 때 앞서 설명했던 명령어인 WHERE 명령어를 통해 위와 같이 원하는 데이터만 테이블에서 우리가 뽑아서 검색할 수 있습니다. 그렇다면 코드로는 어떻게 위 조건을 설정할 수 있을까요? - SELECT/WHERE문의 기본 문법 위 코드처럼 book 테이블의 전체 컬럼에서 WHERE 명령문을 통해 title이 '돈키호테'인 데이터만 검색할 수 있습니다. # 출처 엘리스 AI트랙 7..
- 데이터 베이스의 종류 데이터베이스는 다양한 종류를 가지고 있지만, 가장 많이 사용되는 종류는 관계형 데이터베이스 비 관계형 데이터베이스 입니다. - 관계형 데이터베이스의 정의 관계형 데이터베이스란? 하나 이상의 테이블로 이루어지며 서로 연결된 데이터를 가지고 있음, 관계형 데이터베이스는 SQL을 통해 제어가 가능합니다. - 관계형 데이터베이스의 구조 - 테이블의 구성요소 컬럼(Column)과 레코드(Record)로 구성된 표 모든 테이블은 고유의 이름으로 구분 됩니다. - 테이블에서 데이터를 가져오기 책 정보를 저장하는 book 테이블에 저장된 책의 제목(title)과 저자(author)를 검색해봅시다. - SELECT문의 기본 문법 위 코드는 book 테이블에서 모든 책의 title과 author ..
- 데이터베이스란 무엇일까? 여러 사람이 공유해 사용할 목적으로 통합하여 관리되는 데이터 모음으로 Maria DB, Amazon Redshift, Oracle DB 등 많은 종류가 존재합니다 그렇다면 Maria DB, Amazon Redshift, Oracle DB 등 세상에 존재하는 모든 데이터베이스에 대해 알아야 할까요? 아니다! - 우리가 배워야 하는 내용 데이터베이스의 종류에 따라 사용 방법이 조금씩 다르지만 데이터베이스에서 검색과 분석에 사용되는 기본 방법은 데이터베이스 종류와 상관없이 동일하기 때문이다. - 데이터베이스를 제어하는 방법 SQL(Stuctured Query Language) - 데이터베이스에 접근하고 조작하기 위한 표준 언어 - SQL이 할 수 있는 것 1. 데이터 검색 2. 데..
- 공유 킥보드 DB 앞서 정규화 과정을 통해 각각의 데이터베이스에서 발생하는 오류와 정규화를 통해 해결하는 방법을 공부하고 위 사진과 같이 고객테이블, 대여 테이블, 가격 테이블, 회사 테이블로 나누었습니다. 앞에서 배웠던 것처럼 데이터베이스를 좀 더 완벽하게 만들기 위해 각각의 테이블을 어떻게 수정하면 좋을지 알아보고 이에 따라 테이블을 수정해보겠습니다. - 고객 테이블 회원 가입 시 입력 받는 데이터 추가 기본키를 회원의 ID 대신 고유 번호로 설정 비밀번호는 값을 그대로 넣으면 보안에 취약 - 대여 테이블 고객 번호를 외래키로 사용 대여 장소보다 정확하게 위도와 경도 데이터를 받음 대여 상태를 입력 받아 킥보드를 대여하는 것인지 반납하는 것인지를 기록 브랜드명과 연식을 함께 외래키로 사용하는 대신..
- 정규화 정리 - 결정자이면서 후보키가 아닌 것 학생은 여러 과목을 수강할 수 있고 교수는 한 과목만 가르치는데 여기서 교수가 과목을 결정하는 결정자이지만 후보키는 아니다. - 다치 종속 (하나의 과목은 여러 교수가 가르치며 여러 공통 교재가 사용됨) 한 과목의 교수를 새로 등록하기 위해서는 교재별로 튜플을 만들어야 하므로 교수가 중복 등록됨 - 조인 종속 (하나의 수업은 여러 교수가 가르치며 학생은 같은 수업의 다른 교수 수업을 수강할 수 있음) 수업 테이블을 분해했다가 다시 합쳤을 때(조인) 불필요한 튜플이 발생 - 역정규화 정규화된 데이터베이스의 성능을 개선하기 위해 다시 통합하여 구조를 재구성 정규화를 통해 테이블을 분해하면 여러 테이블을 조인할 때 성능이 크게 떨어질 수 있습니다. 따라서 자주..
- 이상 현상 기본키는 복합키로 고객 ID와 대여시간 킥보드는 이용 1분에 대한 가격에 대한 정보를 브랜드를 출시한 회사가 결정 브랜드와 연식에 따라 킥보드의 기본료가 다름 삽입 이상 : 고객이나 대여 이력이 없는 경우 새로운 회사가 만든 브랜드를 삽입할 수 없음 갱신 이상 : elice 회사의 브랜드명이 변경되는 경우 데이터의 불일치가 발생함 삭제 이상 : flykite 고객의 대여 기록을 삭제하면 everythere 회사의 데이터가 완전 사라짐 - 이행 함수 종속 X → Y, Y → Z 라는 종속 관계가 있을 때, X → Z가 성립하는 경우 즉, X라는 속성을 통해 Y를 알고, Y라는 속성을 통해 Z라는 속성을 알 수 있는 경우 고객 ID와 대여 시간(기본키)을 알면 브랜드명을 알 수 있고, 브랜드명..
- 이상 현상 기본키는 복합키로 고객 ID와 대여 시간 삽입 이상 : 한 번도 대여를 하지 않은 고객을 삽입 할 수 없음 갱신 이상 : 하나의 튜플에서만 김민준 고객의 이름을 변경하면 데이터 불일치가 발생함 삭제 이상 : willgo 브랜드에서 대여한 기록을 삭제하면 이서연 고객의 데이터가 완전 사라짐 - 부분 함수 종속 기본키를 구성하는 속성 중 일부가 결정자 역할을 하는 경우 기본키가 복합키이거나 후보키가 결정자인 경우에 부분 함수 종속이 발생할 수 있음 반대로 기본키를 구성하는 속성 모두가 결정자 역할을 하는 경우는 완전 함수 종속이라고 함 고객 이름은 대여 시간과 관계 없이 고객 ID만으로 결정됨 고객 테이블과 대여 테이블로 분리하여 부분 함수 종속을 제거 - 2차 정규화(2NF) 위에서 확인한 ..
- 정규화를 하기 전에 ERD를 통해 최종 형태의 데이터베이스를 설계하는 것이 아니라 지속해셔 변경 해 나가야함 ↓ customer ERD 수정 - 이상 현상 다음 데이터베이스의 이상 현상은? 데이터 베이스에 저장된 대여시간이 한 속성 값에 두개가 입력되어 있습니다. 그렇다면 이러한 이상 현상을 없애기 위해 어떻게 해야될까요? 한 속성 값에 두 개가 입력된 대여 시간을 분해 - 1차 정규화(1NF) 위에서 대여 시간에 중복으로 입력되어 있는 값을 분해하여 각각의 대여 시간이 적혀있는 데이터로 분리하였습니다. 이를 통해 1차 정규화는 즉, 테이블의 컬럼이 하나의 값만 갖도록 도메인을 원자값으로 설정하는 과정 → 원자값 : 더 이상 나눌 수 없는 가장 작은 값 # 출처 엘리스 AI트랙 7기 - [수업자료]데..