Computer Science 96

[데이터베이스] 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

[데이터베이스] 데이터베이스의 Key의 종류에 대하여(superkey, candidate key, primary key, foreign key)

데이터베이스의 키(key)는 데이터베이스 테이블에서 각 행을 고유하게 식별하는 데 사용되는 필드나 필드의 집합이다. 다양한 종류의 키가 있으며, 각각의 역할과 특성이 다르다. 주요한 키의 종류는 다음과 같다. 1. 슈퍼키(superkey) 슈퍼키는 테이블 내의 튜블을 고유하게 식별하는 하나 이상의 속성으로 구성된 키이다. 슈퍼키는 최소성을 만족하지 않고, 불필요한 속성이 포함될 수 있다. 2. 후보키(candidate key) 후보키는 테이블 내의 튜플을 고유하게 식별할 수 있는 최소한의 속성으로 구성된 키이다. 후보키는 슈퍼키의 특별한 형태로, 최소성을 만족하여야만 한다. 3. 기본키(primary key) 기본키는 테이블 내의 각 행을 고유하게 식별하는 데 사용되는 특별한 후보키이다. 기본키는 NUL..

Computer Science 2024.02.22

[데이터베이스] 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

[자료구조] 버블 정렬 concept, 분석

내부 정렬 중 버블정렬은, 인접한 두개의 원소를 비교하여 자리를 교환하는 방식이다. 첫번째 원소부터 마지막 원소까지 반복하여 한 단계가 끝나면 가장 큰 원소가 마지막 자리로 정렬되게 된다. (마지막으로 배열되는 원소는 비교를 끝까지 진행하므로!) 첫번째 원소부터 인접한 원소끼리 계속 자리를 교환하면서 맨 마지막 자리로 이동하는 모습이 물 속에서 물 위로 올라오는 물방울 모양과 같다고 하여 bubble 정렬이라 지어졌다고 한다. 버블 정렬의 경우, 선택 정렬과 달리 best case와 worst case로 나누어 보아야 한다. best case는 이미 정렬이 완료된 상태로, 비교만 진행하고 자리 교환은 이루어지지 않아도 된다. worst case는 자리 교환이 이루어져야 하기 때문에 시간이 더 필요하다. ..

Computer Science 2024.02.17

[자료구조] 선택 정렬 concept, 분석

Sorting은 순서없이 배열된 자료를 오름차순/내림차순 순서로 재배열 하는 것으로, sorting상에서 key는 자료를 정렬하는데 사용하는 기준이 되는 특정 값을 뜻한다. 내부정렬 중 선택정렬은, 전체 원소들 중에서 기준 위치에 맞는 원소를 선택하여 자리를 교환하는 방식으로 정렬하는 sorting방법으로서, 전체 원소들 중 가장 작은 원소를 찾아 첫번째에 위치 > 두번째로 작은 원소를 찾아 두번째에 위치 를 마지막 원소까지 진행하는 방식이다. 선택정렬의 경우 시간복잡도는 O(n^2)가 된다. (비교 횟수는 첫번째 원소는 n개, 두번째는 n-1개 ...1개까지 비교하므로 전체 합은 n^2). 어느 경우에나 비교 횟수가 같은 것이 특징이다. [python 코드] def selection_sort(arr):..

Computer Science 2024.02.16
반응형