데이터베이스와 SQL

prefer·2024년 9월 28일

SQL 기초

목록 보기
1/15

데이터베이스와 DBMS


우리의 일상생활 정보나, 거래 내역 등의 다양한 정보는 데이터베이스에 저장된다. 그렇다면 데이터베이스란 무엇일까?

데이터베이스(database, DB)란 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합이다.

이러한 데이터베이스를 관리 및 운영하는 소프트웨어를 DBMS(Database Management System)이라고 부른다. 이러한 DBMS는 대표적으로 MySQL, Oracle, SQL Server, MariaDB가 존재한다. 아래는 대표적인 DBMS 6개를 비교/분석한 표이다.

DBMS유형주요 기능일반적 사용 사례가격정책운영체제
MySQL오픈 소스 RDBMS대규모 데이터베이스 관리, 강력한 데이터 보호 기능, 고성능 인덱싱을 제공하여 빠른 검색 속도 보장웹 사이트 데이터베이스, 데이터 웨어하우징, e-commerce 시스템에 적합GPL 라이선스 하에 무료 사용 가능, 상업용 라이선스는 유료Linux, Windows, macOS
Oracle Database관계형멀티테넌시, 고급 보안 기능(데이터 마스킹, 암호화), 메모리 내 처리로 빠른 데이터 접근 제공금융, 보건 및 통신 분야의 대기업에서 복잡한 데이터 관리 필요 시 사용기업 요구에 따른 맞춤형 가격 책정Linux, Windows
PostgreSQL오픈 소스 RDBMS사용자 정의 기능 지원 확장성, MVCC를 통한 강력한 동시성, 지리적 객체 지원웹 애플리케이션, 데이터 분석, GIS 시스템에 사용무료 사용 가능, 호스팅 및 지원 서비스 비용 발생 가능​Linux, Windows, macOS
MongoDBNoSQL유연한 스키마, 수평 확장 용이, 복잡한 쿼리 및 인덱싱 지원콘텐츠 관리, 실시간 분석, IoT 애플리케이션에 사용커뮤니티 에디션 무료, 사용량에 따른 유료 플랜 제공Linux, Windows, macOS
Redis인메모리 데이터 저장소높은 성능, 다양한 데이터 구조 지원, 데이터 지속성 옵션 제공실시간 분석, 캐싱 솔루션, 웹 애플리케이션의 세션 관리에 사용관리형 서비스의 경우 월 $7부터 시작​Linux, Windows, macOS
Microsoft SQL Server관계형포괄적인 보안, 비즈니스 인텔리전스 기능, 하이브리드 클라우드 지원, 고급 분석 기능기업 애플리케이션, 비즈니스 인텔리전스, 다양한 산업의 트랜잭션 처리에 사용Microsoft에 문의해야 하는 변동 가격Windows, Linux

SQL(Structured Query Language)이란 DBMS에 데이터를 구축, 관리하고 활용하기 위해서 사용되는 언어로, 해당 언어를 사용하면 DBMS를 통해 중요한 정보들을 입력, 관리 및 추출할 수 있다.

따라서 SQL을 잘 이해해야 DB에서 원하는 데이터를 쉽고 빠르게 추출할 수 있다.

데이터베이스 모델의 유형


데이터베이스 모델은 크게 계층형, 망형, 관계형, 객체지향형, 객체관계형으로 나뉜다.

계층형 데이터베이스 모델(Hierarchical Database Model)

계층형 데이터베이스 모델은 트리 형태를 가지며 각 데이터 항목 하나의 상위 항목과 하나 이상의 하위 항목을 가진다.

해당 모델은 처음 모델을 구성을 완료한 후, 변경이 까다로우며 다른 데이터 항목을 찾아가기가 어렵다는 단점이 있다. 따라서 간단하고 예측 가능한 데이터 구조가 필요한 시스템에서 사용된다.

망형 데이터베이스 모델(Network Database Model)

망형 데이터베이스 모델은 앞선 계층형 모델을 개선하기 위해 등장한 개념으로 하위 구성원끼리도 연결되고 다수의 상위 항목과 하위 항목을 연결할 수 있는 유연한 구조를 가진다.

그러나 이 역시 잘 활용하기 위해서는 프로그래머가 모든 구조를 이해해야 하므로, 계층형보다 복잡한 데이터 관계를 관리할 수 있는 시스템에서 사용된다.

관계형 데이터베이스 모델(Relational Database Model)

현재 가장 널리 사용되는 모델로 데이터를 테이블로 구성하고 테이블 간의 관계를 통해 데이터를 연결한다. 테이블에는 하나 이상의 행(row)과 열(column)이 존재한다.

가장 널리 사용되므로 현재 Oracle, MySQL, PostgreSQL 등 다양한 DBMS와 산업 분야에서 사용된다.

객체지향 데이터베이스 모델(Object-Oriented Database Model)

데이터를 객체로 저장하고 객체의 특성인 상속성, 캡슐화 등을 데이터베이스에 녹여낸 모델이다.

멀티미디어, 관리 시스템 등의 복잡한 데이터 구조를 가진 응용 프로그램에서 사용된다.

객체관계형 데이터베이스 모델(Object-Relational Database Model)

RDB(관계형 데이터베이스)와 OODB(객체지향 데이터베이스)를 결합한 개념이다.

다양한 데이터 타입과 복잡한 비즈니스 로직을 필요로 하는 애플리케이션에서 사용된다.

SQL


SQL(Structured Query Language)는 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계한 특수 목적의 프로그래밍 언어이다.

SQL은 특정 회사에서 만드는 것이 아닌 국제표준화기구에서 SQL 표준을 정해서 발표하며 이러한 SQL을 표준 SQL이라고 한다. 그러나 DBMS를 제작하는 회사에서 제품의 특성에 맞춰서 개발하다보니, 최대한 표준 SQL을 준수하되, 각 제품의 특성을 반영한 SQL을 사용하도록 발전하였다.

앞으로 MySQL과 DBeaver를 사용하여 기초적인 SQL 문법을 공부할 예정이다.

출처

profile
기술적 의사결정에 객관성을 가지는 Back-End 개발자 이선호입니다.

0개의 댓글