CS(15)
-
[데이터베이스] 스키마 (Schema)
스키마 (Schema) 정의 스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터(Meta-Data)의 집합이다. 또한 데이터베이스를 구성하는 데이터 개체(Entitiy), 개체의 성질을 나타내는 속성(Attribute), 개체 간 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 기술한다. 쉽게 말해서 데이터베이스 내에 데이터를 어떤 구조로 저장하는지를 나타내는 데이터베이스 구조를 스키마라고 한다. 메타데이터(Meta-Data)란? 다른 데이터를 정의하고 기술하는 데이터, 즉 다른 데이터를 설명해 주는 데이터를 의미한다. 특징 스키마는 데이터 사전(DD : Data Dictionary)에 저장된다. 스키마는 현실 세계의 특..
2023.10.17 -
[데이터베이스] 데이터 모델(Data Model)
데이터 모델(Data Model) 데이터 모델은 현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형으로, 데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약 조건 등을 기술하기 위한 개념적 도구들의 모임이다. 데이터 모델의 종류 데이터의 추상화 정도에 따라 3가지 종류로 나눌 수 있다. 개념적 데이터 모델 현실 세계의 요소를 일반 사용자가 이해할 수 있도록 정보 구조로 표현한 모델이다. 주로 E-R(Entity-Relation) 모델을 사용하여 개체와 이들 간의 관계를 시각적으로 표현한다. E-R(Entity-Relation) 모델이란? 개념적 데이터 모델의 가장 대표격으로 1976년 피터 첸(Peter Chen)에 의해 제안되었다. E-R모델은 E-R ..
2023.10.16 -
[데이터베이스] 데이터베이스(Database)란?
자료(Data)와 정보(Information) 자료(Data) : 문자, 숫자, 그림, 영상 등 현실 세계에서 관찰이나 측정을 통해 수집할 수 있는 단순한 사실 혹은 결과 값 정보(Information) : 특정한 목적의 의사결정을 위해 자료에 의미를 부여하여 가공한 형태 정보 시스템(Informaiton System) 정보 시스템은 개인 또는 집단에게 필요한 자료를 수집하고 저장해 두었다가 필요시 자료들을 효과적으로 가공하여 의사결정에 도움을 주는 정보를 생성하고 분배하는 시스템이다. 정보 시스템은 경영, 군사, 인사 행정, 의사 결졍 지원 등 사용하는 목적에 따라 분류되어 사용된다. 데이터베이스 (Database) 정의 데이터베이스는 특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들을 구조..
2023.10.16 -
[자료구조] Hash Table (해시 테이블)
정의 해싱 (Hashing) 해싱(Hashing)은 임의의 길이의 데이터를 고정된 길이의 데이터로 변환하는 작업을 뜻하며 고정된 길이의 데이터를 따로 해시(Hash) 혹은 해시 값(Hash Value)이라고도 부른다. 해시 함수 (Hash Function) 해시 함수(Hash Function)는 해싱을 진행할 때 사용하는 함수를 뜻하며 해시 함수에 따라 변환되는 데이터 값이 다르다. 그러나 입력된 데이터의 값이 같으면 같은 해시 함수를 사용하여 해싱했을 때 출력되는 데이터의 값은 항상 같다. 해시 테이블 (Hash Table) 해시 테이블(Hash Table)은 [ Key : Value ]로 이루어진 데이터에서 Key의 해시 값을 색인(index) 혹은 주소 삼아 Key에 대응하는 Value를 버킷(Bu..
2023.07.24 -
[자료구조] 배열(Array) vs 연결 리스트(Linked List)
배열과 연결 리스트는 둘 다 데이터를 저장하는 선형 자료구조이다. 그러나 어떠한 상황에 있어서 배열을 사용할 때가 있고 연결 리스트를 사용할 때가 존재한다. 어떤 점에서 그 기준이 나뉘는지 각 자료구조의 특징에 대해 알아보자. 배열(Array) 배열은 정적(static)인 자료구조이다. 정적인 이유는 배열을 만들기 위해서는 미리 그 크기를 정해놓기 때문에 나중에 데이터의 크기에 변동사항이 생겼을 때 크기를 유동적으로 수정하는 것이 불가능하다. 이러한 특성 때문에 배열은 데이터들이 빈번하게 추가 및 삭제 연산이 이루어지는 곳에서는 쓰기 힘들다. 그러나 배열은 연속된 메모리 주소를 할당 받기 때문에 임의 접근(random access)이 가능하다. 즉, 첫 번째 요소의 주소만 알게 된다면 다른 요소의 위치도..
2023.07.20 -
[자료구조] Linked List (연결 리스트) (feat. C 언어)
정의 연결 리스트(Linked List)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장한다. 노드의 포인터는 다음이나 이전의 노드와의 연결을 담당한다. 연결 리스트의 종류로는 단방향 연결 리스트(Singly Linked List), 양방향 연결 리스트(Doubly Linked List), 원형 연결 리스트(Circular Linkde List) 등이 있다. 일반적으로 연결 리스트는 헤드라는 더미 노드를 가지고 있다. 헤드는 데이터 값을 가지지 않고 연결 리스트의 처음을 담당한다. 연결 리스트의 마지막 위치(테일)에 있는 노드의 포인터는 null을 가리킨다. 연결 리스트는 자료의 추가, 삽입 및 삭제 연산이 배열보다 빠르다는 장점이 있으며 탐색 연산은 배열보다 시간이 ..
2023.07.19