데이터베이스 8

[데이터베이스] one-to-many/many-to-one/many-to-many relationships

관계형 데이터베이스에서, one-to-many(일대다), many-to-one(다대일), many-to-many(다대다)는 엔터티(테이블) 간의 관계를 설명하는 세 가지 주요 유형의 관계이다. One-to-Many (일대다) 관계: 한 쪽 엔터티(테이블)의 레코드가 다른 쪽 엔터티에서 여러 레코드와 관련된 경우이다. 예를 들어, 하나의 부서에 여러 개의 직원이 속하는 경우가 일대다 관계이다. 부서는 한 쪽에 위치하고, 여러 개의 직원은 다른 쪽에 위치한다. Many-to-One (다대일) 관계: 일대다 관계의 반대로, 다수의 레코드가 다른 테이블의 하나의 레코드와 관련된 경우이다. 위의 예에서 직원(다수)과 부서(하나)의 관계가 다대일 관계이다. Many-to-Many (다대다) 관계: 두 엔터티(테이블..

Computer Science 2024.02.26

[데이터베이스] View에 대하여 (개념 및 정의)

데이터베이스에서 뷰는 하나 이상의 기본 테이블에서 유도된 가상 테이블이다. 뷰는 실제 데이터를 저장하지 않고, 기존의 테이블이나 다른 뷰로부터 데이터를 가져와 가상의 테이블을 생성하는 데 사용된다. 이를 통해 데이터에 대한 접근을 제어하고, 데이터를 편리하게 검색하고 가공하는 데 사용된다. view는 이러한 역할을 한다. 1) 가상 테이블: 뷰는 실제로 데이터를 저장하지 않으며, 기존의 테이블이나 다른 뷰의 결과를 기반으로 쿼리를 수행하여 가상의 테이블을 만든다. 2) 데이터의 가시성 제어: 뷰를 사용하면 특정 사용자나 응용 프로그램이 필요로 하는 데이터만을 선택적으로 노출시킬 수 있다. 사용자에게 필요한 필드만을 보여주거나, 특정 행만을 보여줄 수 있다. 3) 복잡한 쿼리 단순화: 복잡한 쿼리나 여러 ..

Computer Science 2024.02.25

[데이터베이스] Null Value에 대하여(null은 뭘 뜻할까?)

"NULL"은 값이 없거나(no value) 그 값이 알려지지 않은 상태(unknown)를 나타낸다. 다시 말해, 해당 데이터에 대한 정보가 아직 제공되지 않았거나 데이터가 아예 없는 경우를 가리킨다. 그래서 "NULL"은 두 가지 상황을 모두 포함하는 개념이다. 예를 들어, 특정 레코드의 특정 열이 "NULL"이라면, 그 값이 아직 정의되지 않았거나 알려지지 않았다는 것을 의미한다. 이게 값이 누락된 것뿐만 아니라 해당 값 자체가 없음을 나타낼 수 있다. NULL은 데이터베이스에서 유용하게 사용된다. 누락된 정보를 나타내거나 데이터의 불완전한 상태를 표현하는 데 활용된다. [예시 코드] -- 학생 테이블 생성 CREATE TABLE Students ( StudentID INT PRIMARY KEY, S..

Computer Science 2024.02.24

[데이터베이스] DDL/ DML에 대하여

이전 글에서 스키마와 인스턴스의 차이점에 대해 다루었다. 스키마는 틀을, 인스턴스는 값을 의미하는 요소를 뜻했는데, 이를 표현하기 위한 방식으로 각각 DDL과 DML이 사용된다 **DDL은 스키마를 결정하는 언어로서, DML은 인스턴스를 결정하는 언어로서 사용된다. [예시 코드] #DDL : CREATE, ALTER, DROP 등을 사용 CREATE TABLE Students ( student_id INT PRIMARY KEY, student_name VARCHAR(50), age INT ); #DML: SELECT, INSERT, UPDATE, DELETE등을 사용 INSERT INTO Students (student_id, student_name, age) VALUES (1, 'John Doe', 1..

Computer Science 2024.02.23

[데이터베이스] Schema와 Instance에 대하여

데이터베이스에서 스키마는 틀과 형식을 의미한다고, instance는 값을 의미한다고 생각하면 쉽다.이는 프로그래밍 언어에서 타입과 변수에 매칭된다고 볼 수 있다. 스키마는 두 가지로 나뉜다 Logical Schema: 데이터베이스 상에서의 전체적인 논리 구조/ Physical Schema: 전체적인 물리 구조 (프로그래머 레벨) Instance는 데이터베이스의 실제적인 컨텐츠(특정 시간에서의)를 의미한다. [예시 쿼리] #schema CREATE TABLE Students ( student_id INT PRIMARY KEY, student_name VARCHAR(50), age INT, grade CHAR(1) ); #instance INSERT INTO Students (student_id, stude..

Computer Science 2024.02.21

[데이터베이스] Levels of Abstraction(추상화 레벨)

데이터베이스에서 추상화 레벨은 데이터 베이스 시스템의 복잡성을 숨기고 사용자나 응용 프로그램이 데이터를 더 쉽게 다룰 수 있도록 한다. 추상화 레벨은 다음 세가지로 나눈다. 1) 물리적 레벨: 데이터가 실제로 어떻게 저장되는 지에 대한 세부사항을 다루는 레벨이다. 저장매체, 인덱스같은 데이터베이스의 물리적 구조에 대한 사항이 포함된다. 세부사항을 모르더라도 데이터에 접근 및 조작이 가능하다. 2) 논리적 레벨: 데이터가 어떻게 구조화되고 연결되는 지에 대한 정보를 다룬다. 데이터베이스 스키마, 테이블, 관계와 같은 조건들이 논리적 레벨에 속한다. 3) 뷰 레벨: 논리적인 데이터 모델에서 특정 사용자 또는 응용 프로그램이 필요로 하는 데이터의 일부를 추상화하여 제공하는 개념이다. 뷰를 통해 필요한 데이터만..

Computer Science 2024.02.20

[데이터베이스] Data Models

데이터베이스상에서 데이터 모델은 다음과 같이 나뉜다. - ** Relational model : 데이터를 테이블 형식으로 표현하며, 각 테이블은 행과 열로 이루어져 있다. - **Entity-Relationship data model (디자인시 사용) : 개체와 관계를 다이어그램으로 나타낸 모델이다. - Object-based data models : 객체지향프로그래밍의 개념을 데이터베이스에 적용한 모델로, 데이터를 객체로 표현한다. - Semi-structured data model(XML) : 데이터가 일부 구조로 정의되어 있지만 전체적으로는 구조화되지 않은 모델이다. - Other older models : Network model/ Hierarchical model >> 더이상 쓰지 않음, 빅데이..

Computer Science 2024.02.19

[데이터베이스] Natural Join의 위험성에 관하여(Natural Join은 왜 위험할까?)

Natural Join은 두 테이블 간에 동일한 이름을 가진 열들을 기반으로 자동으로 결합하는 데이터베이스의 쿼리의 일종이다. Natural Join은 Join시 위험성이 존재하는데, 그 위험성들은 다음과 같다. 1) 의도하지 않은 결합: Natural Join은 열 이름이 동일한 열들을 기반으로 결합하기 때문에, 열 이름이 동일하지만 실제로는 서로 다른 데이터를 나타내는 경우에는 오류가 발생할 수 있다. 2) 향후 스키마 변경에 대한 취약성 : 새로운 열이 추가되거나 삭제될 시 혼란이 생김 3) 쿼리 이식성의 감소 : 다른 데이터베이스로 쿼리를 이식하는 데 무리(특정 열 이름에 의존하기 때문) 4) 성능저하: 다른 조인들보다 많은 계산을 필요로 하기 때문에 성능 저하가 될 수 있음

Computer Science 2024.02.02
반응형