목록전체 글 (68)
걸음마부터 달리기

자료를 검색할 때 SELECT 절과 FROM 절만을 사용하여 기본적인 SQL 문장을 구성한다면, 테이블에 있는 모든 자료들이 결과로 출력되어 실제로 원하는 자 료를 확인하기 어려울 수 있다. 사용자들은 자신이 원하는 자료만을 검색하기 위해서 SQL 문장에 WHERE 절을 이용하여 자료들에 대하여 제한할 수 있다Where절에는 크게두 개 이상의 테이블에 대한 조인 조건을 기술하거나 결과를 제한하기 위한 조건을 기술할 수도 있다. SELECT [DISTINCT/ALL] 칼럼명 [ALIAS명]FROM 테이블명WHERE 조건식조건식은 [칼럼명] [연산자] [문자,숫자,표현식 | 비교칼럼명(JOIN시)]이다.이때 연산자는 SQL연산자, 비교연산자가 가능하고 논리연산자는 조건식과 조건식을 묶을때 사용한다. 연산자 ..

트랜잭션트랜잭션은 데이터베이스의 논리적 연산단위이다. 트랜잭션(TRANSACTION)이란 밀접히 관련되어 분리될 수 없는 한 개 이상의 데이터베이스 조작을 가리킨다. 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다. 트랜잭션은 분할할 수 없는 최소의 단위이다. 그렇기 때문에 전부 적용하거나 전부 취소한다. TCL ( TRANSACTION CONTROL LANG)결국엔 하나의 트랜잭션을 수행시킨 후 커밋을 치던지 , 롤백을 하던지 , 롤백을 할때는 특정 DB의 저장지점으로 돌려놔야 한다. 이때의 저장점(SAVEPOINT) 가 필요하다. 이들을 수행하는 명령어이다. COMMIT입력한 자료나 수정한 자료에 대해서 또는 삭제한 자료에 대해서 전혀 문제가 없다고 판단되었을 경우 COMMIT 명령어를 통해서..

DML의 자료들 입력 수정 삭제 조회의 SQL을 살펴보자. INSERTINSERT INTO 테이블명 (COLUMN LIST~)VALUES (COLUMN LIST에 넣을 순서대로 VALUE LIST)INSERT INTO 테이블명 VALUES (전체 COLUMN LIST에 넣을 순서대로 VALUE LIST)순서는 1대1 매핑해서 입력하면 된다. CHAR나 VARCHAR일 경우 ' ' 로 감싸서 입력한다.사실 COLUMN 일부분만 INSERT할때는 정확히 1대1 매핑해서 VALUE LIST를 입력하지 않아도 된다. 이때 입력하지 않은 데이터는 자동으로 NULL로 들어간다. 단 이때도 만약 PK이거나 NOT NULL 제약이 있으면 이또한 허용하지 않는다. UPDATE 입력한 정보 중에 잘못 입력되거나 변경이 ..

데이터 유형은 데이터베이스의 테이블에 특정 자료를 입력할 때, 그 자료를 받아들일 공간을 자료의 유형별로 나누는 기준이라고 생각하면 된다. ANSI/ISO 기준으로는 숫자 타입의 NUMERIC TYPE의 하위 개념으로 여러가지 타입들이 있다. (SMALL INT , BIG INT , INTEGER , FLOAT , REAL 등등) ORACLE 기준으로는 NUMBER의 한가지 숫자타입만 지원한다.VARCHAR 와 CHARACTER:VARCHAR는 크기도 가변으로 딱 그 만큼만 저장하고 CHARACTER는 고정길이 이하의 BYTE 크기라면 공간으로 채워서 저장한다.문자열 비교에서는 서로 다른 문자열을 비교할때 CHARACTER은 그 길이차이만큼 공백으로 채워서 서로 비교하지만 VARCHAR 는 그대로 비교..

TCL의 경우 DCL과 통합될 수 있음. 날것의 데이터를 테이블에 넣을 수 있게 가공하라. 관계형 데이터베이스의 기본 단위인 테이블형태로 데이터들은 저장이 되고 이 테이블에서 등록 및 꺼내온다. 또한 새로운 데이터를 입력할때는 새로운 테이블 만들 필요 없이 기존 테이블에 데이터만 추가한다. 칼럼이 아예 없는 테이블은 불가능하다.칼럼은 1개 이상 있는데 데이터(행)은 없는 빈 테이블은 가능하다. 선수와 관련된 데이터를 저장할 때 모든 데이터를 하나의 테이블로 저장하지 않는다.선수와 관련된 데이터를 선수 테이블과 구단 테이블이라는 복수의 테이블로 분할하여 저장하고 있는다.이렇게 테이블을 분할하여 데이터의 불필요한 중복을 줄이는 것이 정규화라고 한다.하나의 박지성에 대한 데이터를 추가할때 선수테이블에 다 때려..

슈퍼/서브타입 데이터 모델의 개요 Extended ER Model: 이 모델이 자주 쓰이는 이 유는 업무를 구성하는 데이터의 특징을 공통과 차이점의 특징을 고려하여 효과적으로 표현할 수 있기 때문이다. 즉, 공통의 부분을 슈퍼타입으로 모델링하고 공통으로부터 상속받아 다른 엔터티와 차이가 있는 속성에 대해서는 별도의 서브엔터티로 구분하여 업무의 모습을 정확하게 표현하면서 물리적인 데이터 모 델로 변환을 할 때 선택의 폭을 넓힐 수 있는 장점이 있다. 슈퍼/서브타입의 데이터모델은 논리적인 데이터모델링에서 사용하는 방식이므로, 진짜 SQL로 테이블 짜야하는 물리적 데이터모델링에서는 알맞게 이것을 변형해야한다. 이러한 변환방법의 기준은 애플리케이션의 트랜잭션 특성을 분석해야한다.1) 트랜잭션은 항상 일괄로 처..

먼저 데이터의 중복이란? 그냥 간단하게 하나의 속성에 여러 중복되는 값들이 오면 그게 중복이고 이러한 중복을 최대한 피하게 저장하게 모델링하는게 정규화 반정규화: 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상과 개발(Development)과 운영(Maintenance)의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미한다. 협의의 반정규화는 데이터를 중복하여 성능을 향상시키기 위한 기법이라고 정의할 수 있고 좀 더 넓은 의 미의 반정규화는 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정을 의미한다. (==정규화를 끝낸 엔터티들에 대해 일부로 중복을 허용하는 정규화를 반대하는 방향으로 다시 모델링하여 성능향상을 함) 정규..

데이터 처리 속도 성능 3가지 요소:1) 데이터 모델 구조 자체의 개선2) 데이터 자체의 대용량으로 인한 성능 하락3) 인덱스 특성을 고려하지 않고 인덱스 생성하여 성능저하 성능 데이터 모델링: 데이터베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블통합, 테이블분할, 조인구조, P K, FK 등 여러 가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것으로 정의할 수 있다. (== 모델링할때부터 성능에 신경써라) 이러한 성능 데이터 모델링은 Analysis와 Design 단계에서 수행하면 Cost가 적게 든다. 따라서 미리미리 해놓자. 1) 정규화된 모델이 데이터를 주요 관심사별로 분산시키는 효과가 있기 때문에 그 자체로 성능을 향상시키는 효과가 있다...