본문 바로가기
컴퓨터 과학(Computer Science)

[컴퓨터배우기 12]: 데이터베이스

by 우주주민 2023. 2. 14.
반응형

<데이터베이스>

데이터베이스
데이터베이스

 

이번 포스팅에서는 데이터베이스에대해 작성해보겠습니다! 여기서는 데이터 설계 및 관리를 포함하여 기본 데이터베이스 개념을 다룹니다. 데이터베이스 개념, 데이터베이스 모델 및 용어, 데이터베이스 설계 및 SQL의 네 가지 주요 섹션으로 나뉩니다. 데이터베이스 기본 사항에 대한 포괄적인 개요를 알아봅시다.레츠고~

 

<데이터베이스 개념>

 데이터베이스는 한 단어로 "데이터 집합"으로 정의할 수 있습니다.

우리 일상생활의 대부분의 정보는 데이터베이스에 저장되고 관리됩니다. 데이터베이스는 여러 사용자가 공유하고 관리하는 데이터의 집합으로, 컴퓨터 시스템에 저장된 데이터에 쉽게 접근하고 관리할 수 있는 시스템입니다. 이러한 데이터베이스는 다양한 형태와 용도로 제공됩니다. 데이터베이스는 일반적으로 행과 열로 구성된 구조인 테이블로 구성됩니다. 각 열은 특정 유형의 데이터를 저장하고 각 행은 레코드를 나타냅니다. 데이터베이스는 데이터를 구조화, 검색, 저장 및 수정하는 데 사용됩니다.

 

 데이터베이스는 데이터 일관성, 무결성, 보안 등을 유지하기 위해 다양한 제약 조건과 규칙을 적용할 수 있습니다. 데이터베이스는 또한 백업 및 복원을 지원하여 데이터 손실 및 손상을 방지할 수 있습니다.

 

 데이터베이스는 많은 영역에서 사용되며 비즈니스에서 주문, 재고, 고객 및 회계와 같은 정보를 저장하고 관리하는 데 사용됩니다. 또한 인터넷 서비스 및 응용 프로그램은 또한 사용자 정보, 게시물 및 댓글과 같은 정보를 저장하고 관리하는 데 사용합니다.

 

 한편으론 데이터베이스는 데이터 분석과 관련된 다양한 기능을 제공합니다. 데이터베이스를 사용하여 복잡한 쿼리를 실행하고 데이터를 분석하여 유용한 정보를 추출할 수 있습니다. 데이터 분석은 의사 결정 및 비즈니스 전략 개발에서 중요한 역할을 합니다.

 

 데이터베이스를 "데이터 집합"으로 정의하면 이 데이터베이스를 관리하고 운영하는 소프트웨어를 DBMS(데이터베이스 관리 시스템)라고 합니다. 다양한 데이터가 포함된 데이터베이스는 여러 사용자 또는 애플리케이션에서 동시에 공유하고 접근 가능해야 합니다.

 

<DBMS(데이터베이스 관리 시스템)의 종류>

 

1. Oracle: 미국 오라클(Oracle) 사의 관계형 데이터베이스 관리 시스템(RDBMS)

2. MySql: 관계형 데이터베이스 관리 시스템(RDMS)입니다. 또한 MySql은 오픈 소스이며, 다중 사용자와 다중 스레드를 지원합니다.

3. MS-SQL: 미국 마이크로스프트에서 개발한 관계형 데이터베이스 관리 시스템(RDBMS)

4. PostrgreSQL: 오픈 소스 객체-관계형 데이터베이스 시스템 (ORDBMS)

5. MongoDB: 크로스 플랫폼 도큐먼트 지향 데이터베이스 시스템이며 NoSQL 데이터베이스입니다.

 

 

 

<데이터베이스 모델 및 용어>

데이터베이스 모델은 데이터를 저장하고 관리하는 방식을 정의하는 데 사용되는 개념적인 프레임워크입니다. 데이터베이스 모델은 데이터의 구조와 특성을 나타내는데 사용되며, 데이터의 접근성과 보안성, 효율성 등을 결정합니다. 데이터베이스 모델은 크게 계층형 모델, 망형 모델, 관계형 모델, 객체지향 모델 등이 있습니다.

 

계층적 모델에서 논리적 데이터 구조는 트리 형태이며 엔터티는 트리를 구성하는 노드 역할을 합니다. 개체는 노드로 표시되며 개체 집합 간의 관계는 링크로 연결되어 속성이 개체 집합과 어떻게 관련되어 있는지 보여줍니다. (엔터티 간의 관계는 부모-자식 관계로 표현됨)

 

망형 모델이라고도 하는 네트워크 데이터 모델은 그래프 구조를 기반으로 합니다. 위계질서의 단점을 극복한 것이기 때문에 위계질서와 달리 하나의 자식이 여러개의 부모를 가질 수 있는 차이점이 있습니다. 그러나 그래프의 구조로 인해 복잡한 포인터 구조를 사용하는 단점이 있으며, 따라서 개발자는 응용 프로그램을 개발할 때 모든 구조를 이해해야 합니다.

 

관계형 모델은 가장 일반적으로 사용되는 데이터베이스 모델입니다. 이 모델은 데이터를 테이블 형태로 저장하며, 각 테이블은 열과 행으로 구성됩니다. 열은 데이터의 유형을 정의하고, 행은 특정 레코드를 나타냅니다. 이 모델은 SQL(Structured Query Language)을 사용하여 데이터를 조작하며, 다양한 연산자를 제공하여 데이터를 검색, 수정, 삭제, 삽입할 수 있습니다.

 

데이터베이스 모델에는 다양한 용어들이 존재합니다. 테이블은 데이터를 저장하는 구조로, 각 열은 특정 데이터 유형을 저장하고 각 행은 특정 레코드를 나타냅니다. 기본 키는 각 레코드를 식별하는 역할을 하며, 외래 키는 다른 테이블과의 관계를 나타냅니다. 쿼리는 데이터베이스에서 데이터를 검색하고 필터링하는 데 사용됩니다.

 

[일반적인 데이터베이스 용어]

 

테이블: 행과 열로 구성된 관련 데이터 모음

행: 각 열에 대한 데이터를 포함하는 테이블의 단일 레코드

: 특정 유형의 데이터가 들어 있는 테이블의 필드

기본 키: 테이블의 각 행에 대한 고유 식별자

외부 키: 다른 테이블의 기본 키를 참조하는 테이블의 열

인덱스: 테이블에서 데이터를 더 빠르게 검색할 수 있는 데이터 구조

쿼리: 데이터베이스의 특정 데이터에 대한 요청

트랜잭션: 단일 작업 단위로 처리되는 일련의 데이터베이스 작업

백업: 재해 또는 데이터 손실 시 데이터를 복원하는 데 사용됩니다.

 

데이터베이스에는 다양한 제약 조건도 존재합니다. 예를 들어, 고유 제약 조건은 특정 열에 동일한 값을 입력하지 못하도록 하는 제약 조건입니다. 참조 무결성 제약 조건은 특정 열이 다른 테이블의 기본 키와 일치하도록 하는 제약 조건입니다.

 

마지막으로, 데이터베이스는 다양한 인덱스를 사용하여 데이터의 접근성과 검색 속도를 향상시킵니다. 인덱스는 특정 열을 기반으로 데이터를 검색하는 데 사용되며, 일반적으로 고유한 값에 대해 사용됩니다.

 

 

 

 

<데이터베이스 설계>

데이터베이스 설계 순서는 요구분석 - 개념적설계 - 논리적설계 - 물리적설계 - 구현 순으로 이뤄집니다.

 

 

1. 요구조건 분석 / 명세

데이터베이스의 사용자, 사용목적, 사용범위, 제약조건 등에 대한 내용을 정리하고 명세서를 작성합니다.

 

2. 개념적 설계 (E-R모델)

정보를 추상적 개념 구조 정보로 표현하는 과정에서 개념 모델 모델링과 트랜잭션 모델링을 동시에 수행하고, 요구사항 분석을 통해 DBMS 독립적인 ER 다이어그램을 작성합니다.

 

3. 논리적 설계 (데이터 모델링)

데이터를 컴퓨터가 이해할 수 있도록 특정 DBMS의 논리적 데이터 구조로 변환하는 과정입니다 관계형 데이터베이스의 경우 이 단계에서 테이블을 설계하고 정규화합니다.

 

4. 물리적 설계 (데이터 구조화)

논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정입니다. 데이터베이스 파일의 저장 구조 및 액세스 경로, 인덱스의 구조와 저장 레코드의 크기, 순서, 접근 경로 등을 결정하며, 반응시간, 공간활용도, 트랜잭션 처리량을 고려하여 설계를 하여야 합니다.

 

5. 데이터베이스 구현

앞선 설계 단계에서 도출된 데이터베이스 스키마를 실제 파일로 생성하는 단계입니다. 특정 DBMS에 데이터베이스 스키마를 생성한 후 데이터를 가져와 애플리케이션에서 사용할 트랜잭션을 생성합니다.

 

 

 

<SQL(Structured Query Language)>

SQL(Structured Query Language)은 관계형 데이터베이스의 데이터를 관리하고 조작하는 데 사용되는 프로그래밍 언어입니다. 사용자는 데이터베이스를 작성, 수정 및 질의할 뿐만 아니라 테이블에서 데이터를 삽입, 업데이트 및 삭제할 수 있습니다. SQL은 소프트웨어 개발 산업에서 널리 사용되는 표준화된 언어이다.

 

SQL의 가장 중요한 측면 중 하나는 데이터베이스 테이블을 만들고 조작하는 기능입니다. 사용자는 각 열에 저장할 수 있는 데이터 유형을 지정하는 열이 있는 테이블을 만들 수 있습니다. 테이블을 수정하여 열을 추가하거나 제거하고 기존 열의 데이터 유형을 변경할 수도 있습니다.

 

[SQL 명령어는 크게 4가지의 그룹으로 나뉩니다]

 

DDL - 데이터베이스 스키마와 설명을 처리하는 정의하는 언어이다. 데이터베이스나 테이블 생성/변경/삭제 등의 작업이 여기에 포함된다.

[명령어]: CREATE, ALTER, DROP, TRUNCATE, COMMENT, RENAME

DML - 데이터 검색, 삽입, 변경, 삭제를 수행하여 조작하는 언어이다. 실질적으로 저장된 데이터에 처리할 때 사용한다.

[명령어]: SELECT, INSERT, UPDATE, DELETE, MERGE, CALL, EXPLAIN PLAN, LOCK TABLE

DCL - 데이터에 접근할 수 있는 권한을 관리하는 언어이다.

[명령어]: GRANT, REVOKE

TCL - 트랜잭션을 다루는 언어이다.

[명령어]: COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION

 

 

SQL을 사용하면 SELECT 문을 사용하여 테이블에서 데이터를 쿼리할 수 있습니다. 이 문을 사용하여 특정 열에 특정 값이 있는 모든 행을 선택하는 등의 특정 기준에 따라 데이터를 검색할 수 있습니다. 사용자는 WHERE 절을 사용하여 쿼리에 추가 기준을 추가할 수도 있습니다.

 

SQL에는 사용자가 데이터를 조작할 수 있는 여러 기능과 연산자도 포함되어 있습니다. 예를 들어, 사용자는 AVG 함수를 사용하여 열의 평균 값을 계산하거나 COUNT 함수를 사용하여 특정 기준을 충족하는 행의 수를 계산할 수 있습니다.

 

SQL의 또 다른 중요한 측면은 테이블을 결합하는 기능입니다. 이를 통해 사용자는 여러 테이블의 데이터를 단일 결과 집합으로 결합할 수 있습니다. 사용자는 공통 열을 사용하여 테이블을 조인할 수 있으며, 내부 조인, 왼쪽 조인 및 오른쪽 조인과 같은 다른 유형의 조인을 사용할 수 있습니다.

 

SQL은 사용자가 관계형 데이터베이스에서 광범위한 작업을 수행할 수 있는 강력한 언어입니다. 개발자, 데이터 분석가, 데이터 과학자들이 금융, 의료, 전자상거래 등 다양한 산업 분야의 데이터를 관리하고 분석하기 위해 사용한다.

반응형

댓글