DataBase 20

[DataBase] 04. SQL(Structured Query Language) - Intermediate(3)

SQL(Structured Query Language) - Intermediate(3)#Database/Concepts/TempView첫 번째 챕터에서 다뤘던 “View of Data”에 대해 다시 떠올려봅시다.복습 | View of Data —> “Data abstraction을 통해 실제 물리적으로 저장되어 있는 데이터를 그대로 가져와서 보는게 아니라, 사용자가 필요한 데이터만 보고 접근할 수 있게 되었다”교수님 강의자료만 보면 View에 대해 정확히 이해하기 쉽지 않습니다. View가 무엇인지만 가지고 View를 어떤 상황에 어떻게 적용해야 하는지 감을 익히는게 매우 중요합니다. 따라서 View에 대한 이해를 돕기 위해 하나의 에피소드를 예로 들어보겠습니다.에피소드 : IT기업의 직원 정보 데이터베..

DataBase/Concepts 2024.10.11

[DataBase] 04. SQL(Structured Query Language) - Intermediate(2)

SQL(Structured Query Language) - Intermediate(2)#Database/Concepts/Temp(10/10) 굉장히 공들여서 작성한 글이여서 원래 동아리 스터디 용도로 일부 공개 했었는데, 더 많은 분들이 봤으면 하는 마음에 오픈! Outer JoinOUTER JOIN은 일치하는 행이 없더라도, 한쪽 또는 양쪽 테이블의 모든 행을 포함하여 조인한다.정보 손실을 방지하는 join 작업의 확장입니다.join한 다음, 다른 relation의 튜플과 일치하지 않는 튜플을 join 결과에 추가합니다.Outer join은 일치하는 데이터와 일치하지 않는 데이터를 모두 기반으로 합니다.NULL 값을 사용합니다.테이블 A, 테이블 B가 있고, 테이블 A를 LEFT Table이라고 하고,..

DataBase/Concepts 2024.10.11

[DataBase] 04. SQL(Structured Query Language) - Intermediate(1)

SQL(Structured Query Language) - Intermediate(1)#Database/Concepts/Temp(10/10) 굉장히 공들여서 작성한 글이여서 원래 동아리 스터디 용도로 일부 공개 했었는데, 더 많은 분들이 봤으면 하는 마음에 오픈! 이전 챕터에서 이어서 SQL 구문과 관련된 내용이 이어집니다. 요번 챕터에서 Join Operation을 중점으로 다루게 될텐데, 요즘 SQL 코테에서도 Join 관련 문제가 자주 등장한다고 하니 꼼꼼히 봐두시길!Joined Relations관계 대수에서 Join Operation에 대해서 살펴봤던거 기억나시나요? 기억 안나시면 서운합니다 ㅠㅠ챕터 2 내용을 복기해보자면 Cartesian 곱은 모든 가능한 조합의 결과를 생성하므로 원하지 않은 ..

DataBase/Concepts 2024.10.11

[DataBase] 03. SQL(Structured Query Language)(4)

SQL(Structured Query Language)(4)#Database/Concepts/Temp(10/10) 굉장히 공들여서 작성한 글이여서 원래 동아리 스터디 용도로 일부 공개 했었는데, 더 많은 분들이 봤으면 하는 마음에 오픈!게시글 길이 제한으로 글을 분리해서 업로드하는 점 양해 바랍니다데이터베이스 수정 (Modification of the Database)위에서는 데이터베이스 릴레이션에서 원하는 데이터를 선택하는 것에 대해 배웠다. 지금부터 데이터베이스에서 원하는 데이터를 수정하는 방법에 대해 배워보자튜플 삭제 (Deletion): 주어진 relation에서 튜플을 삭제합니다.튜플 삽입 (Insertion): 주어진 relation에 새로운 튜플을 삽입합니다.값 업데이트 (Updating):..

DataBase/Concepts 2024.10.11

[DataBase] 03. SQL(Structured Query Language)(3)

SQL(Structured Query Language)(3)#Database/Concepts(10/10) 굉장히 공들여서 작성한 글이여서 원래 동아리 스터디 용도로 일부 공개 했었는데, 더 많은 분들이 봤으면 하는 마음에 오픈!게시글 길이 제한으로 글을 분리해서 업로드하는 점 양해 바랍니다중첩 서브쿼리 (Nested Subqueries)앞 챕터에서 관계 연산의 조합을 다루면서 “관계 대수 연산의 결과는 relation이다. 따라서 관계 대수 연산의 결과인 Relation을 다시 관계 대수 연산Relation으로 사용할 수 있다” 라고 했던 걸 기억할 것이다.이를 SQL에서도 제공하고 있다. select-from-where 쿼리의 결과로 얻은 릴레이션을 다시 쿼리에 사용할 수 있다. 중첩 서브쿼리는 SQL..

DataBase/Concepts 2024.10.11

[DataBase] 03. SQL(Structured Query Language)(2)

SQL(Structured Query Language)(2)#Database/Concepts/Temp(10/10) 굉장히 공들여서 작성한 글이여서 원래 동아리 스터디 용도로 일부 공개 했었는데, 더 많은 분들이 봤으면 하는 마음에 오픈!게시글 길이 제한으로 글을 분리해서 업로드하는 점 양해 바랍니다SQL에서의 집합 연산 (SET Operations in SQL)위에서는 특정 릴레이션들에서 특정 조건을 만족하는 튜플, 또는 그 튜플 중 원하는 attribute를 선택하는(= 쿼리) 구문에 대해 배웠다.여기서부터는 두 개 이상의 쿼리 결과를 조합해서 하나의 결과 집합을 만들어내는 집합 연산에 대해 알아본다. (쿼리 + 쿼리)SQL은 테이블 데이터에 대해 수행될 수 있는 집합 연산을 지원합니다.이는 테이블에 ..

DataBase/Concepts 2024.10.11

[DataBase] 03. SQL(Structured Query Language)(1)

SQL(Structured Query Language)(1)#Database/Concepts/Temp(10/10) 굉장히 공들여서 작성한 글이여서 원래 동아리 스터디 용도로 일부 공개 했었는데, 더 많은 분들이 봤으면 하는 마음에 오픈!게시글 길이 제한으로 글을 분리해서 업로드하는 점 양해 바랍니다첫 번째 챕터에서 데이터를 정의하는 언어 DDL, 데이터를 조작하는 언어 DML에 대해서 배웠고 데이터베이스에 접근하고 조작하는데 사용하는 표준적인 언어로 SQL에 대해서 간단히 소개하였다. 이번 챕터에서는 SQL에 대해 자세히 다룬다. SQL의 중요성에 대해선 첫 번째 챕터에서 다뤘으므로 넘어간다.SQL Parts - 개요SQL은 DDL, DML, DCL, TCL 모두를 포함하고 있다. 이 4가지에 대해서 배..

DataBase/Concepts 2024.10.10

[DataBase] 02. Relational Model(관계형 모델)

Relational Model(관계형 모델)#Database/Concepts(10/10) 굉장히 공들여서 작성한 글이여서 원래 동아리 스터디 용도로 일부 공개 했었는데, 더 많은 분들이 봤으면 하는 마음에 오픈!이전 챕터에서 여러 종류의 Data Model에 대해 간단히 언급하고 넘어갔다. 그 중 Relational Model에 대해 이번 챕터에서 다루게 된다.관계형 모델로 만들어진 데이터베이스를 RDB라고 한다. RDB는 매우 중요하다. 실제로 여러분이 사용하는 서비스 대부분에서 대부분의 도메인을 RDB로 저장하고 있다.Application에서 사용하는 DBMS나 프로그래밍 언어, 프레임워크는 언젠간 새롭고 더 나은 것으로 바뀔 것이다. 현재 IT 서비스 기업에서 가장 많이 사용하는 자바, 스프링, M..

DataBase/Concepts 2024.10.10

[DataBase] 01. Introduction

Introduction#Database/Concepts(10/10) 굉장히 공들여서 작성한 글이여서 원래 동아리 스터디 용도로 일부 공개 했었는데, 더 많은 분들이 봤으면 하는 마음에 오픈!들어가기 앞서이 과목을 배우기 앞서서 Database가 왜 필요한 지부터 생각해보자.여러분이 수강신청 시스템을 만들어야 하는 개발자가 되었다고 생각해보자. 기존에 배웠던 프로그래밍 문법(Java, C)와 GUI를 이용해서 수강신청 시스템을 만들기로 했다. 어떻게 해서 수강 과목, 회원, 클래스를 만들고 프로그래밍을 완료해서 컴파일후 프로그램을 실행시킨다. 하지만 이 프로그래밍이 종료되면 메모리 상의 데이터는 모두 사라지게 된다.따라서 여러분들은 프로그래밍입문 시간에 배운 파일 입출력을 이용해서 2차 저장소(HDD or..

DataBase/Concepts 2024.10.10

[DataBase] 10. Normalization(정규화)

Normalization(빅데이터 등장 이후 잘 안쓰긴 합니다. 그래도 RDB에서는 중요해요)좋은 relational design 생성instructor와 department를 in_dept으로 결합한다고 가정, 이는 instructor와 department 간의 natural join을 나타냄정보의 반복이 있음Null 값을 사용해야 함 (새로운 부서를 추가하는 경우, instructor가 없는 경우)Decompositionin_dep schema에서 정보 반복 문제를 피하는 유일한 방법은 이를 두 개의 schema - instructor와 department schema -로 분해하는 것임모든 Decomposition가 좋은 것은 아님. 예를 들어, employee(ID, name, street, ci..