관계형 데이터베이스
-
[SQLite] 자연 조인(NATURAL JOIN)Software/SQLite 2018. 1. 20. 16:56
자연 조인은 내부 조인의 한 일종이다. 내부 조인의 경우 명시적으로 조인 조건을 작성을 해주었지만 자연 조인의 경우는 별도의 조인 조건 없이 테이블이 가지고 있는 공통 컬럼 이름을 매개체로 연결된다. 즉 조인 조건 (WHERE, ON 절)은 불필요하며 대신 FROM 절에서 두 테이블 이름 사이에 NATURAL JOIN 키워드를 추가하면 된다. 그리고 자연 조인의 경우 동일 컬럼 이름을 매개체로 연결되어 있기에 조회 필드에서 와일드 카드(*) 사용 시 중복된 컬럼은 한 번만 조회된다. 아마 다음 예제를 보면 쉽게 이해할 수 있을 것이다. sqlite> SELECT * FROM cars NATURAL JOIN carBrand; car_id|brand_id|name|price|brandName 1|1|Sona..
-
[SQLite] 자체 조인 (SELF JOIN)Software/SQLite 2018. 1. 14. 18:05
자체 조인(SELF JOIN)이란 동일한 테이블을 연결해서 조회하는 방법을 말한다. 쉽게 말하면 이전에 설명한 중첩 질의를 자체 조인을 사용해서 작성가능 하다. 예를 들어 cars 테이블에서 "Sonata"라는 name의 price와 같은 값을 가지는 데이터를 조회한다고 한다면 우리는 아래와 같이 먼저 name 값이 "Sonata"인 데이터의 price값을 조회한 후 조회된 price 값과 동일한 가격의 데이터를 조회해야 한다. sqlite> SELECT brand_id, name, price ...> FROM cars ...> WHERE price in (SELECT price from cars WHERE name = "Sonata"); brand_id|name|price 1|Sonata|1500000..
-
[SQLite] 내부 조인(Inner Join)Software/SQLite 2018. 1. 13. 20:34
이번에 알아 볼 내용은 조인 연산이다. 테이블 조인 연산은 말 그대로 2개 이상의 테이블을 하나로 연결해서 조회하는 방법으로 이를 통해 각 테이블에서 필요한 컬럼들을 가져와 하나의 결과셋을 얻을 수 있다. 이 때 어떻게 테이블을 연결시켜 주느냐에 따라 조인 연산의 종류가 달라지는데 주로 사용되는 조인 연산은 아래와 같다. 내부 조인(Inner Join), 자연 조인 (Natural Join), 외부 조인 (Outer Join), 자체 조인 (Self Join), 크로스 조인 (Cross Join) 그럼 지금 부터 예제를 통해 각 조인 연산에 대해서 알아보도록 하자. 내부 조인 (Inner Join) 내부 조인은 두 테이블을 연결하는 특정 조건을 만족하는 결과만 반화는 조인을 일컫는다. 내부 조인의 형식은..
-
[SQLite] 중첩 질의 (Nested query)Software/SQLite 2017. 11. 27. 00:18
데이터 중복성과 종속성을 최소화 하기 위해 데이터를 여러 테이블에에 분산 저장하는 것은 관계형 데이터베이스 설계에 있어 매우 중요한 부분이다. 그러나 분산된 데이터를 조회하기 위해 여러 테이블에 Select문을 수행해야 하는 단점도 발생하게 된다. 이러한 단점을 극복하기 위한 방법으로 "중첩 질의" 혹은 "조인 연산"이 있다. 그 중 중첩 질의는(Nested query)는 SQL 문 안에 또 다른 SQL 문을 포함하고 있는 구조이다. 조건절의 중첩 질의 먼저 carBrand 테이블에서 brandName이 "Kia"인 레코드의 brand_id를 조회해 보자 sqlite> SELECT brand_id FROM carBrand WHERE brandName='Kia'; brand_id2 그리고 cars 테이블에..
-
[SQLite] 기본키 (Primary Key)Software/SQLite 2017. 9. 16. 16:49
Table 내 동일 한 레코드가 입력되는 경우 이를 구분해 줄 수 있는 식별자를 만들어 사용하는 데 이 식별자를 기본키 (Primary key) 라고 한다. 이 기본키는 각 테이블마다 단 하나씩만 설정할 수 있다. 그리고 아래와 같은 조건들을 만족해야 한다. 기본키(Primary key)의 조건 유일성 (Uniqueness) 기본키를 구성하는 컬럼은 테이블에서 레코드를 식별할 수 있도록 유일해야 함 최소성 (Minimality) 유일성을 만족하는 한도 내에서 최소한의 컬럼(하나 이상)으로 구성되어야 함 개체 무결성(Entity integrity) 기본키가 가지고 있는 값의 유일성이 보장받아야 함. (컬럼 값이 NULL인 경우는 값이 지정된 것이 아니기 때문에 기본키로 사용 불가) 기본키(Primary k..
-
[SQLite] 관계형 데이터베이스Software/SQLite 2017. 9. 2. 17:35
관계형 데이터베이스의 장점 데이터의 중복성과 종속성을 최소화 여러 테이블에 데이터를 나누어 저장 테이블 간의 관계를 통해 원하는 정보를 조회 관계형 데이터베이스의 설계 원칙 중복을 최소화 : 데이터 중복성(redundancy)과 일관되지 않는 데이터 종속성(dependency) 제거 규칙에 따라 테이블 설계 테이블 간 관계는 공통된 값을 통해 서로 연결 - 기본키(Primary Key) 관계형 데이터베이스 실제 예시 현재 'cars' table에는 자동차 이름과 가격, 그리고 해당 자동차의 브랜드 이름이 각각의 Column으로서 존재하고 있다. 문제는 자동차 브랜드의 이름이 바뀌거나 기업 합병등을 통해 해당 자동차의 브랜드가 바껴 버리는 경우 자동차의 이름과 가격은 그대로지만 브랜드를 바꾸기 위해 해당 ..