객체지향 프로그래밍 - 클래스 사용
관계형 데이터베이스 - 테이블 사용
객체 모델과 관계형 모델간 불일치 존재
ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결해줍니다.
데이터베이스 데이터 <- 매핑 -> Object 필드
SQL은 Structured Query Language (구조적 질의 언어)의 줄임말로, 관계형 데이터베이스 시스템(RDBMS)에서 자료를 관리 및 처리하기 위해 설계된 언어입니다.
현재 SQL의 표준으로 ANSI SQL이 정립되었습니다. 각 DBMS 프로그램에서 ANSI SQL을 기반으로 개발된 개별 SQL을 사용하며 서로 근소한 차이를 보입니다.
ANSI JOIN 문법은 LEFT JOIN 처럼 JOIN 이 들어가고
Oracle JOIN 문법은 JOIN이 안들어간다.
SQL 문법은 크게는 3가지의 종류로 나누어지며, 종류마다 정의는 아래와 같습니다.
DDL(Data Definition Language, 데이터 정의 언어)
각 릴레이션을 정의하기 위해 사용하는 언어입니다. (CREATE, ALTER, DROP...)
DML(Data Manipulation Language, 데이터 조작 언어)
데이터를 추가/수정/삭제하기 위한, 즉 데이터 관리를 위한 언어입니다. (SELECT, INSERT, UPDATE...)
DCL(Data Control Language, 데이터 제어 언어)
사용자 관리 및 사용자별로 릴레이션 또는 데이터를 관리하고 접근하는 권한을 다루기 위한 언어입니다. (GRANT, REVOKE...)
DBMS는 DataBase Management System의 약자로 데이터베이스를 관리하는 시스템이다.
사용자와 DB사이에서 사용자의 요구에 따라 데이터를 생성해주고 DB를 관리해주는 소프트웨어이다.
DBMS는 데이터를 계층 또는 탐색 형식으로 저장한다. 파일 시스템을 사용해 저장하며 따라서 테이블 간에는 아무런 관계가 없다.
데이터에 대한 많은 보안을 제공하지 않으며 정규화를 수행할 수 없어 데이터는 높은 중복성을 가질 수도 있다.
Sybase, dbase 및 Microsoft Access는 DBMS의 몇 가지 예다.
우선 RDB는 관계형 데이터 모델에 기초를 둔 데이터 베이스이다.
모든 데이터를 2차원의 테이블 형태로 표현한다.
RDB를 생성하고 수정하고 관리할 수 있는 소프트웨어이다.
RDBMS는 Relational DataBase Management System의 약자로 관계형 모델을 기반으로 하는 DBMS 유형이다.
RDBMS의 테이블은 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있다.
정규화를 통해 데이터의 중복성을 최소화하며 트랜잭션을 수행하는 것이 더 쉽다.
데이터의 원자성, 일관성, 격리 및 내구성을 유지하며 데이터 무결성을 높인다.
MSSQL, MySQL, Oracle이 RDBMS의 몇가지 예다.