CS지식/데이터베이스
-
ER 모델이란 무엇인가?CS지식/데이터베이스 2021. 6. 7. 23:12
ER(Entity-Relationship model)은 개념적 데이터 모델의 대표적인 모델로 개체와 개체 간의 관계를 이용하여 현실세계를 개념적 구조로 표현하는 방법이다. 여기서 말하는 개체(entity)는 어떠한 각자만의 의미를 가진 동물이나 사물 또는 형태가 없는 개념과 사건을 뜻한다. 이러한 개체에는 개체를 나타내는 특성이 있을텐데 그 특성을 속성(attribute)라 한다. ER모델이 무엇인지 아래의 그림을 보며 이해해보자. 사람이라는 개체와 음식이라는 개체가 존재한다. 두 개체는 사람이 음식을 먹는다라는 관계를 가지고 있다. 이렇게 개체와 개체 간의 관계로 표현하는 것이 ER모델이다. ER모델을 사람들이 보기 쉽고 이해하기 쉽게 나타낸 것이 ERD(ER Diagram)이다. ERD는 직사각형, ..
-
관계 대수란 무엇인가?CS지식/데이터베이스 2021. 6. 4. 23:20
관계 대수는 릴레이션을 처리하는 연산의 집합으로 일반 집합 연산자와 순수 관계 연산자가 있다. 우리가 수학시간에 집합A와 집합B의 교집합, 합집합, 차집합 등을 배웠듯이 데이터베이스에서도 릴레이션을 피연산자로 하여 연산을 하는 연산자가 있다는 것이다. 관계 대수 연산자의 종류를 아래의 정리된 표로 알아보자. 그러면 지금부터 하나씩 자세히 알아보도록 하자. 1) 합집합 연산자 합집합 연산자는 두 개의 릴레이션을 합하여 하나의 릴레이션을 반환하는 연산자이다. 두 개의 릴레이션을 합하여 나온 것 중 중복된 튜플이 있다면 한 번만 나타나게 된다. 예시를 보면 다음과 같다. 2) 교집합 연산자 교집합 연산자는 두 릴레이션에 모두 존재하는 튜플들을 반환하는 연산자이다. 예시를 보면 다음과 같다. 3) 차집합 연산자..
-
키(key)란 무엇인가?CS지식/데이터베이스 2021. 6. 1. 23:01
오늘은 릴레이션의 키(key)와 무결성 제약조건에 대해 정리해보려고 한다. 먼저, 릴에이션에 사용되는 키(key)가 무엇인지 알아보자. 보통 키라는 단어를 쓸 때를 생각해보면 자물쇠를 여는 키나 자동차 키를 생각할 수 있다. 이러한 실생활의 예를 떠올리면 A 자물쇠만 풀 수 있는 A키가 있고 B 자물쇠만 풀 수 있는 B키가 있다. 그리고 A키로 B자물쇠를 열 수 없을테고 B키로 A 자물쇠를 없는게 키의 특징이다. 이처럼 키(key)라는 것은 무언가를 식별하는 고유한 식별자(identifier)기능을 한다. 릴레이션에서 사용되는 키는 대표적으로 수퍼키, 후보키, 기본키, 대체키, 외래키가 있다. 그러면 각각의 키에 대해 자세히 알아보자. 수퍼키(super key)는 하나의 릴레이션을 구성하는 속성들 중에서..
-
데이터 모델이란 무엇인가CS지식/데이터베이스 2021. 5. 29. 23:24
데이터 모델은 데이터베이스의 구조를 단순화, 추상화하여 체계적으로 표현하는데 사용되는 도구이다. 데이터 모델은 데이터구조, 연산, 제약조건으로 구성된다. 데이터구조는 데이터베이스에 저장되는 데이터가 무엇인지와 데이터 간의 관계를 표현한 것이다. 연산은 데이터 구조에 따라 데이터의 실제 값을 처리하는 작업과 같은 데이터 조작 기법을 의미한다. 제약조건은 데이터베이스에 정확하고 유효한 데이터가 유지될 수 있도록 하기 위해 데이터를 조작하는데 한계를 규정한 것이다. 데이터 모델에는 개념적 데이터 모델과 논리적 데이터 모델이 존재한다. 먼저, 개념적 데이터 모델에 대해 알아보자. 개념적 데이터 모델은 개체(entity), 속성(attribute), 관계(relationship)을 이용하여 데이터를 개념적 구조로..
-
데이터베이스 관리 시스템(DBMS)란 무엇인가CS지식/데이터베이스 2021. 5. 26. 23:13
데이터베이스 관리 시스템(DBMS)는 사용자 또는 응용 프로그램과 데이터베이 사이에 위치하여 데이터베이스를 공유할 수 있도록 관리하는 소프트웨어이다. 사용자가 원하는 정보를 검색하는 기능을 제공하고 데이터베이스에 접근하기 위해서는 DBMS를 통해서만 가능하다. 데이터베이스 관리 시스템(DBMS)가 개발되기 전에는 어떻게 데이터를 관리했을까? DBMS가 나오기 전에는 디스크의 파일에 데이터를 저장하고 이러한 파일들을 파일 시스템이 관리했다. 하지만 파일 시스템은 데이터 종속성과 데이터 중복성 문제가 있어 대체자가 필요하게 되었고 그 대체자로 DBMS가 나오게 된 것이다. 그러면 데이터 종속성과 데이터 중복성은 무엇일까? 데이터 종속성은 데이터와 응용 프로그램 간의 상호 의존 관계를 뜻한다. 즉, 데이터에 ..
-
데이터베이스란 무엇인가(With 기초가 튼튼한 데이터베이스)CS지식/데이터베이스 2021. 5. 23. 22:56
지난(5월 15일) KOCW에서 백현미 교수님의 강의를 완강하고 오늘부터는 조금 더 개념을 확실히 잡고 심화된 학습을 진행하기 위해 도서관에서 여러 책을 비교한 후 한 책을 선택했다. 책의 이름은 기초가 튼튼한 데이터베이스이다. 이 책을 고르기 전에 '개발자와 DBA를 위한 Real MySQL'라는 책으로 공부하려 했으나 내용이 너무 어려워서 조금 더 이해하기 쉬운 책을 찾게 되었다. 나의 목표는 하루에 한 장(종이 한 장이 아니라 목차에서 의미하는 장, 약 30~40페이지 정도)를 목표로 하고 이전 방식처럼 네트워크, 운영체제, 데이터베이스를 하루에 한 과목씩 로테이션으로 공부할 것이다. 데이터베이스를 공부하기 위해서는 데이터베이스가 정확히 무엇인지를 집고 넘어가야겠다는 생각을 했다. 데이터베이스를 간..
-
13일차 - SQL (데이터 조작, DML) (2)CS지식/데이터베이스 2021. 5. 15. 22:36
오늘은 저번시간에 이어 데이터를 조작하는데 쓰이는 DML의 남은 부분에 대해 배웠다. 새로운 데이터 삽입과 데이터 수정, 데이터 삭제를 SQL을 통해 어떻게 하는지 알 수 있었다. 1. 데이터 삽입 : INSERT문 기존에 있는 테이블에 새로운 데이터를 삽입하고자 하려면 INSERT문을 사용하면 된다. INSERT INTO 테이블_이름[(속성리스트)] VALUES (속성값_리스트); INTO키워드와 함께 새로운 데이터를 삽입할 테이블의 이름과 속성의 이름을 입력하면 되고 삽입하고자하는 데이터는 VALUES 뒤에 입력하면 된다. 여기서 속성리스트는 생략이 가능하다. 만약 속성의 이름(속성리스트)를 생략한다면 테이블을 정의할 때 지정한 속성의 순서대로 값이 삽입된다. 예를 들어, 제품명, 단가, 수량을 속성..
-
12일차 - SQL (데이터 조작, DML) (1)CS지식/데이터베이스 2021. 5. 12. 20:47
오늘은 저번 시간에 이어 SQL의 종류 중 하나인 데이터조작기능을 하는 DML에 대해 배웠다. 오늘은 DML 중 데이터 검색을 하는 SELECT에 대해서만 배웠는데 내용이 상당히 많아 이해하는데 시간이 좀 걸렸다. 1. SQL 데이터 조작 기능 SQL에서 데이터를 조작하기 위해서는 DML을 사용하면 된다. 데이터 조작 기능으로는 데이터 검색, 새로운 데이터 삽입, 데이터 수정, 데이터 삭제가 있다. 오늘은 데이터 검색을 하는 SELECT에 대해 자세히 알아보고자 한다. 2. 데이터 검색 : SELECT문 (1) 기본검색 먼저, 기본적으로 사용되는 데이터 검색에 대해 알아보자. SELECT [ALL|DISTINCT]속성_리스트 FROM 테이블_리스트 ; SELECT키워드와 함께 검색하고 싶은 속성의 이름을..