본문 바로가기

분류 전체보기

(44)
Elastic Beanstalk에 RoR 프로젝트 배포하기 Elastic Beanstalk를 사용하면 애플리케이션을 실행하는 인프라에 대한 염려 없이 AWS 클라우드에서 애플리케이션을 신속하게 배포 및 관리할 수 있다. 선택 또는 제어에 대한 제약 없이 Elastic Beanstalk의 관리 복잡성이 줄어든다. 애플리케이션을 업로드하기만 하면 Elastic Beanstalk에서 용량 프로비저닝, 로드 밸런싱, 조정, 애플리케이션 상태 모니터링에 대한 세부 정보를 자동으로 처리한다. 따라서 RoR 프로젝트를 elastic beanstalk에 배포해 볼 것이다. 그전에 배포할 프로젝트의 Ruby 버전은 2.6.5, Rails 버전은 5.2.4를 사용하고 있다. elastic beanstalk는 두가지 방법으로 배포할 수 있지만, 해당 게시글에서는 EB CLI를 이용..
SQL - Set Operator(집합 연산자) SQL에는 집합 개념을 이용한 Union(합집합), Intersect(교집합), Except(차집합) 연산자가 존재한다. 먼저 union 연산자 부터 살펴보자. Union 연산자는 연결된 select문의 결과 값을 합집합으로 묶어준다. 조회된 데이터에 대해서 기본적으로 중복을 허용하는 Relation Algebra나 SELECT문과는 달리 SET operator에서는 데이터의 중복을 허용하지 않기 때문에, Union 연산의 결과 값은 중복이 제거되어 있다. 아래 사진을 보자. 실제로 조회된 결과를 보면 college의 이름과 student의 이름이 같이 존재하는 것을 확인할 수 있다. 이때 출력된 데이터의 column이름을 확인하면 Cname으로 되어있는 것을 볼 수 있다. 즉 union연산에서는 먼저 ..
SQL - natural join, cross join, self join natural join은 Equi join과 유사하다. natural join에서는 조인 조건을 기술하지 않아도 자동으로 두 테이블의 이름과 자료형이 같은 공통 컬럼을 찾아서 조인(equi join)한다. 또 select 절에 테이블 명을 기술하지 않고 검색하는 것이 가능하다. 아래의 사진을 살펴보자. natural join에서는 equi join과 같이 테이블을 조인시킬 조건을 명시해주지 않아도 알아서 공통 컬럼을 찾아서 조인해주어, 두 쿼리문의 결과가 일치하는 것을 볼 수 있다. 하지만 natural join에는 하나의 제약이 따른다. natural join은 테이블을 조인 시킬 때, 이름이 같은 모든 컬럼을 조인 조건으로 사용한다. 만약 두개의 테이블에서 두개의 컬럼이 공통된다면, 두개의 컬럼 모두..
SQL - Equi Join(등가 조인) 과 non Equi Join(비등가 조인) 데이터 베이스에서는 여러가지의 join이 존재한다. 연산자에 따라 join 방식을 분류하면, equi join/non equi join으로 나뉘게 되고, from절의 join 형태에 따라 분류하면 inner join, outer join으로 나뉘게 된다. 오늘은 연산자에 대한 join 방식을 알아보겠다. 먼저, Equi join이란 두 테이블에서 공통적으로 존재하는 컬럼의 값의 행을, 즉 특정 Attribute의 tuple 값이 일치하는 경우 해당 행을 연결하여 데이터를 조회하는 방법이다. 아래 사진을 살펴보자. 위 쿼리를 보면 먼저 student 테이블과 apply 테이블의 공통되는 column에서 같은 값을 가지는 데이터에 한해서 조회를 하고 있다. 물론 같은 컬럼으로 table을 조인시키고 나면, ..
SQL - Alias/Order by/Like 키워드를 이용한 SELECT 문 해당 키워드들을 설명하기에 앞서 아래 SQL문과 조회된 결과를 확인해보자. 제대로 결과가 출력되었지만, 위 쿼리문을 봐서는 직관적으로 어떤 데이터를 찾는지 확인하기 힘들고, 테이블 이름이 길어지면 길어질수록 적어야 할 쿼리문의 길이가 늘어질 것이다. 따라서 우리는 Alias(별칭) 키워드를 사용하는데, 해당 키워드를 사용하면 긴 SQL문을 비교적 간편하게 만들 수 있다. 아래 쿼리문을 확인해보자. 첫번째 쿼리문과 비교했을 때, 조회된 결과는 동일하지만, 쿼리문이 간편해진것을 확인할 수 있다. 실제로 쿼리문을 작성할 때, 보통 테이블의 이름이 긴 경우 직관적이고 짧은 이름의 Alias를 이용하여 쿼리를 간결하게 만든다. alias는 테이블 뿐만 아니라, 컬럼에도 적용할 수 있다. 컬럼에 Alias를 사용하..
SQL - 테이블 JOIN을 이용한 SELECT문 두개의 테이블을 연결(결합)하여 데이터를 출력하는 것을 JOIN이라고 한다. 관계형 데이터베이스에서는 조인을 통해 여러 테이블의 데이터를 하나의 테이블의 데이터처럼 조회할 수 있다. SELECT 테이블1.칼럼명, 테이블2.칼럼명, ... FROM 테이블1, 테이블2 WHERE 테이블1.칼럼명1 = 테이블2.칼럼명2; (WHERE 절에 JOIN 조건을 표시) 위 형식은 일반적인 (Inner Join) 조인의 형식이며, 키 값이 있는 테이블의 컬럼 값을 비교한 후 조건에 맞는 값을 가져온다. 즉 연관이 있는 테이블의 데이터를 조회하는 조인 방법이다. 여기서 Equal 연산자(=)만을 사용했기 때문에 Equal Join이라고도 한다. 이제 아래 두 테이블을 이용히여 join을 통해 데이터를 조회해보자. 먼저 ..
SQL - SELECT문 SELECT문은 DB에 존재하는 데이터들을 조회하는데 사용한다. SELECT문은 기본적으로 select절과 from절을 기본 구성으로 하고 있고, where절을 통해 데이터를 조회할 때 조건을 걸어준다. SELECT A1,A2,...,An(Attribute) FROM R1,R2,...,Rm(Table list) WHERE condition 테이블에 존재하는 모든 Attribute(Column)에 대하여 데이터를 출력해주고 싶다면, attribute을 나열하지 않고, '*' 을 통해서 쿼리문을 실행시키면 된다. (ex, SELECT * FROM employees) Student table로 기본 SELECT문을 연습해보자. 여기서 GPA가 3.6이상인 학생들의 모든 정보(Attribute)를 출력해보자. ..
관계형 모델(Relational Model) 데이터 모델이란 데이터를 저장하는 방식을 정의한 개념 모형이다. 종류로는 계층형, 관계형, 객체 지향형 등이 있는데 이번에 볼 것은 이 중 관계형 모델이다. 관계형 데이터 모델은 1970년 E.F.Codd가 제안한 모델로서 수 십년동안 주류 데이터베이스 모델로 성장해 왔다. 이 관계형 데이터 모델(관계형 데이터베이스) 즉, RDB(Relational DataBase)는 데이터 간의 관계에 초점을 두고 있으며 키와 값들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 개념의 데이터베이스이다. 일련의 정형화된 테이블로 구성된 데이터 항목들의 집합이며 각 테이블은 데이터의 성격에 따라 여러 개의 컬럼(키)이 포함된다. (관계형 데이터베이스를 관리하는 DBMS는 RDBMS라고 불리우며 Oracle, MySQL..