본문 바로가기

CS 과목(CS科目)/데이터 베이스(データベース)

create database vs create schema CREATE DATABASE와 CREATE SCHEMA의 차이점은 데이터베이스 시스템에 따라 다르게 적용됩니다.1️⃣ 일반적인 차이점구분 CREATE DATABASE vs CREATE SCHEMA개념물리적인 데이터베이스 생성논리적인 네임스페이스(스키마) 생성사용 목적새로운 데이터베이스를 만들 때기존 데이터베이스 내에서 논리적인 그룹을 만들 때적용 범위독립적인 데이터베이스 단위하나의 데이터베이스 내에서 관리권한새로운 데이터베이스를 만들 수 있는 권한 필요현재 사용 중인 데이터베이스 내에서 사용 가H2 데이터베이스에서는?H2에서는 CREATE DATABASE 명령을 지원하지 않습니다.스키마를 생성하여 데이터베이스처럼 사용CREATE SCHEMA company;SET SCHEMA company;CREATE T.. 더보기
key(Feat. superKey, candidate key, foreign key) super key : relation에서 tuple을 unique하게 식별할 수 있는 attribute SET . candidate key : super key 중 어느 한 attribute라도 제거하면 unique하게 tuple을 식별할 수 있는 attribute set. primary key : candidate key 중 실제로 선택된 key. unique key(alternative key) : primary key가 아닌 candidate key.foreign key : 다른 relation의 Primary Key를 참조하는 attribute Set 더보기
RDBMS(Feat. 관계형 데이터베이스, relation, set, list etc) 관계형 DB, 즉 "Relational" DB의 Relation은 수학에서의 Relation에서 유래함Relation in Mathematics의 2가지 정의1] subset of Catesian Product2] set of tuples-> 위 내용을 아래에서 자세히 알아 보자.  setset : 중복 없는 elements를 가지는 collection이며, 순서는 중요하지 않다. e.g.{1,3,4,5} == {1,5,4,3}Cartesian Product Catesian Procut의 수학적 표기 : X_1 x  X_2 x .... X_n = {(x_1,x_2,...x_n) | x_1 -> Set X_1,Set X_2,Set X_n, 즉 n개의 Set에서 하나씩의 elements를 골라 만들 수 있는.. 더보기
database 기본 개념(Feat. data models, conceptual level, logical level, physical level, three schema architecture etc) database system (줄여서 database라고도 부름)= database(순수 데이터가 저장된 곳) + DBMS + 연관된 applications data model : DB 구조(structure)를 추상화하여 표현하는 것 *DB 구조 : 데이터 유형, 테이터 관계(relationship), 제약 사항(constraints) 등등data model의 분류(catagolizing) : 크게 3가지로 분류 가능1] conceptual data models : 일반 사용자에게 DB 구조 이해시키기위한 수단-> 비즈니스 요구 사항을 추상화하여 기술할 때 사용*ER 다이어그램 : conceptual data models의 종류 중 하나.  2] logical data models : 개발자들이 가장 .. 더보기
internal schema Internal Schema는 데이터가 실제 물리적으로 저장되는 방식을 정의하는 것이므로, SQL 쿼리보다는 데이터베이스 내부의 저장 구조를 최적화하는 설정 코드로 표현됩니다.아래 예제에서는 MySQL, PostgreSQL, MongoDB 등에서 Internal Schema를 구현하는 방법을 보여드릴게요.1️⃣ MySQL에서 Internal Schema 적용 예시MySQL에서는 스토리지 엔진, 인덱스 구조, 파티셔닝을 설정하여 Internal Schema를 구성할 수 있습니다.✅ B-Tree 인덱스 적용 (클러스터링 인덱스)sql복사편집CREATE TABLE Customers ( customer_id INT PRIMARY KEY, name VARCHAR(100), address VARCHAR(255), .. 더보기
Inner Join과 Cross Join(세타 Join)의 차이 Inner Join : FK와 PK를 이용하여 Table들을 Join Cross Join(세타 Join) : FK,PK이용하는 것 없이, 모~~든 Tuple들에 대해서 막 Join한다. 더보기
페이징(Paging) 페이징 : [한 화면]에서 보여 줄 수 있는 데이터의 범위를 결정하는 것 우리가 흔히 접하는 일반적인 웹 게시판이나 조회 화면을 생각하면 된다. 조회 대상 데이터가 10만 건이라면 한 화면에서 모두 보여 줄 수는 없다. 더보기
DB 설계 시, 多 관계에 있는 Table에 FK가 있어야 하는 이유 사전 지식 : FK는 단 1개의 TABLE만을 가리킬 수가 있다.( 위 그림은 여러 Member들(Member Table)이 하나의 Team(1개의 Team Table)에 소속되어 있음을 뜻함) Member : Team == 多 : 1의 관계이다. 즉, 여러 Member들이 하나의 Team(하나의 Team Table에 소속)에 소속될 수 있다는 것이다. 만약 Member Table에 TEAM_ID가 FK로 있어야 2명 이상의 Member들이 Table에 들어 왔을 때, 그 2명 이상의 Member들이 하나의 Team 소속(하나의 Team Table을 가리키고 있다는 것을)이라는 것을, TEAM_ID(FK)로 나타낼 수가 있다. 반대로 만약, FK가 Team Table의 MEMBER_ID였다면, 해당 팀 .. 더보기