DataBase
[DB] 테이블 제약 조건
테이블 제약 조건 - 테이블에 부적절한 자료가 입력되는 것을 방지하기 위해서 여러가지 규칙을 적용해 놓는 것 - 간단하게 말하면 테이블 안에서 데이터의 성격을 정의하는 것. 1. NOT NULL 조건 컬럼을 필수 필드화 시킬 때 사용. NOT NULL 제약조건 설정 시 해당 컬럼에는 꼭 데이터를 입력해야 함. -- emp3라는 테이블을 만들고, ename 컬럼의 제약조건명을 emp_nm_ename 으로 하여 NOT NULL 제약조건을 설정하자. SQL> CREATE TABLE emp3( ename VARCHAR2(30) CONSTRAINT emp_nm_enmae NOT NULL ); -- 제약조건을 확인할 때는 USER_CONSTRAINTS 뷰를 통해서 확인할 수 있다. SQL> SELECT CONSTR..
[DB] 무결성 제약 조건
데이터 무결성이란? 무결성이란 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성을 의미한다 즉, 데이터 무결성은 데이터의 정확성, 일관성, 유효성이 유지되는 것을 의미한다. 정확성 : 중복이나 누락이 없는 상태 일관성 : 원인과 결과의 의미가 연속적으로 보장되어 변하지 않는 상태 만약 데이터베이스에서 데이터 무결성 설계를 하지 않는다면 테이블에 중복된 데이터 존재, 부모와 자식 데이터 간의 논리적 관계 깨짐, 잦은 에러와 재개발 비용 발생 등과 같은 문제가 발생할 것이다. 그렇기 때문에 DBMS에서 데이터의 무결성이 유지되는 것은 중요한 사항이며, 주로 데이터에 적용되는 연산에 제한을 두어 데이터의 무결성을 유지한다. 무결성 제약조건 무결성 제약조건이란 데이터베이스의..
[DB] 데이터베이스 키(KEY) 종류
Relation 주로 테이블(Table)과 같은 의미로 사용되며, 데이터의 집합을 의미한다. 튜플(Tuple)과 어트리뷰트(Attribute)로 구성되어있다. Table 중 데이터베이스에서 사용되기 위한 조건을 갖춘 것이 relation이다. Relation의 제약 조건 중 가장 자주 등장하는 조건은 다음과 같다. table의 cell은 단일 값을 갖는다. 어떤 두 개의 row도 동일하지 않다. 키가 존재하는 이유 튜플을 구별하기 위해 튜플을 유일하게 구별하기 위해 모든 속성을 이용하는 것보다 일부 속성만 이용하는 것이 효율성을 높일 수 있다. 릴레이션에 포함된 튜플들을 유일하게 구별해주는 역할은 속성 또는 속성들의 집합인 키가 담당한다. ※ 튜플 (Tuple) : 릴레이션 (테이블) 을 구성하는 각각의..
[DB] 테이블 용어 정리
테이블(Table) 관련 용어 릴레이션 - 투플(행)들의 집합 각 릴레이션은 오직 하나의 레코드 타입만 포함 (행 이니까) 한 애트리뷰트 내의 값들은 모두 같은 유형 각 애트리뷰트(열)들의 순서는 중요하지 않음 : 집합은 순서는 의미가 없음. 동일한 투플이 두 개 이상 존재하지 않음 -> 키가 존재함 한 투플의 각 애트리뷰트는 원자값(리스트)을 가짐. 투플들의 순서는 중요하지 않음. 각 애트리뷰트의 이름은 한 릴레이션 내에서만 고유하면 됨. - 릴레이션 키 각 투플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임 두 릴레이션을 서로 연관시킬 때 사용 인덱스를 만들 때 사용 릴레이션 스키마(relation schema) - 내포 릴레이션의 이름과 릴레이션의 애트리뷰트들의 집합 표기법 : 릴레이..
[DB] 스키마(Schema) 개념
스키마 (뜻 : 계획, 도식) 데이터베이스의 구조(개체, 속성, 관계)와 제약 조건에 대한 정의이다. 메타 데이터라고도 한다. 데이터베이스 관리 시스템(DBMS)이 주어진 설정에 따라 데이터베이스 스키마를 생성하고, 데이터베이스 사용자가 자료를 저장, 조회, 삭제, 변경 할 때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행한다. 한마디로 DBMS는 스키마를 참조하여 사용자의 명령을 수행하는 것이다. 즉, 데이터베이스 어떻게 설계할지에 대한 계획 즉, 구조와 제약 조건을 정하는 것이다. 구체적으로 데이터는 어떤 것들로 구성하며, 데이터들은 어떤 테이블에 저장되며, 여러 테이블들을 어떤 관계를 가지고 있는지를 계획한다. ※ 참고 scheme과 schema는 거의 같은 의미지만 schem..
[DB] 데이터 모델
데이터 모델이란? 현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화 하여 체계적으로 표현한 개념적 모형이다. 데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약조건 등을 기술하기 위한 개념적 도구들의 모임이다. 데이터모델의 종류 개념적 데이터 모델 현실 세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정이다. 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조로 표현하기 때문에 정보 모델이라고도 한다. 대표적인 개념적 데이터 모델로는 E-R모델이 있다. 논리적 데이터 모델 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정이다. 단순히 데이터 모델이라고 하면 논리적 데..
[DB] SQL(구조화 쿼리 언어) vs NoSQL(비구조화 쿼리 언어)
데이터베이스란? 우선 데이터베이스란 무엇일까? 데이터베이스란 데이터의 모음을 말한다. 또는 일반적으로 컴퓨터 시스템에 전자적으로 저장되는 조직화된 데이터 모음을 말한다. 이렇게 데이터를 조직화하면 데이터에 의미가 생긴다. 또한 대량의 데이터를 효율적으로 관리할 수 있다. 이러한 데이터를 조직화하는 방식(데이터베이스를 만드는 방식)에는 여러가지가 있다. 즉, 데이터베이스를 만들고 관리하는 방식에 따라 데이터베이스 유형을 구분할 수 있는 것이다. 데이터베이스의 유형의 구분 오늘날 데이터베이스는 주로 아래와 같이 구분되어 설명된다. 관계형 데이터베이스 vs 비관계형 데이터베이스 SQL 기반 데이터베이스 vs. NoSQL 기반 데이터베이스 관계형 데이터베이스 vs. NoSQL SQL vs. NoSQL 다소 혼란..
[DB] 데이터베이스(DB) 기초 개념
데이터베이스(Database) 란? 데이터베이스는 우리의 일상생활에서 자주 접하는 용어 중 하나 일 것이다. 예를 들어, 인터넷 쇼핑몰에서 상품을 주문하거나, 학교에서 성적을 조회하거나, 은행에서 계좌를 관리할 때 등 다양한 상황에서 데이터베이스가 쓰인다. 데이터베이스는 어렵게 생각할 필요없이 데이터들을 저장하고 조회하는 프로그램이다. 쇼핑몰의 경우 상품 정보, 고객 정보, 주문 정보 데이터를 데이터베이스에서 가져와 조회하거나 정보를 저장하는 것이다. 데이터베이스의 필요성 데이터를 저장하고 조회한다는 관점에서 보면 파일들을 폴더에 저장하여 정리하고 파일을 검색해서 조회하는 윈도우 파일 탐색기와 비슷해 보일수 있다. 하지만 데이터베이스는 이러한 단순한 데이터 저장소 개념을 넘어선 상위 호환 격이다. 데이터..
[MySQL] 기본 SQL문법 정리 (테이블 조회, 생성, 수정, 삭제)
DB 다루기 구문 -- 데이터베이스 보기 show databases; -- 만약 sqlDB가 존재하면 우선 지운다. drop database if exists sqlDB; -- 데이터베이스 생성 create database sqlDB; -- 데이터베이스 선택 use sqlDB; ※ 참고 유닉스 환경의 MySQL에서는 데이터베이스 이름의 대소문자를 구분한다. 그러나 윈도우 환경의 MySQL에서는 데이터베이스의 이름에 대소문자를 구분하지 않는다. 하지만 될 수 있으면 언제나 데이터베이스의 이름은 대소문자를 구분하여 사용하는 것이 가독성 측면에서도 좋다. 테이블 생성 CREATE TABLE db명.테이블명 ( 컬럼명1 INT PRIMARY KEY AUTO_INCREMENT, -- 기본키 숫자 자동 증가 설정 ..