DataScience 34

[자료구조] 자료구조란 무엇인가

자료구조란 무엇인가 자료(data)와 정보(information) 자료를 입력해주고 이것을 처리해주면 우리가 원하는 정보를 얻을 수 있습니다(P(D) = I). 즉, 정보란 자료의 가공 결과입니다. 자료의 정의 현실 세계에서 관찰이나 측정을 통해서 수집된 값이나 사실 우리의 생활에서 실제로 만질 수 있거나 볼 수 있는 것 길이, 무게, 부피 등을 측정할 수 있는 대상에 대해서 물리적인 단위로 표현하여 얻어낼 수 있는 내용 정보의 정의 어떤 상황에 대해서 적절한 의사결정을 할 수 있게 하는 지식으로서 자료의 유효한 해설이나 자료 상호 간의 관계를 표현하는 내용 어떠한 상황에 적절한 결정이나 판단에 사용될 수 있는 형태로 가공되거나 분류되기 위해 처리 과정을 거쳐서 정리되고 정돈된 자료의 2차 처리 결과물 ..

[PostgreSQL] 함수와 뷰 활용하기

함수 함수란? 함수란 원하는 목적의 달성을 위해 일련의 SQL문 작업들을 하나의 단위로 묶은 것을 의미합니다. 즉, 여러 작업들을 ㅎ묶어 하나의 함수 이름으로 부를 수 있습니다. 다른 DBMS에서는 저장프로시저라고도 합니다. 함수를 사용하는 이유 함수를 사용하는 이유는 복잡하고 시간이 많이 걸리는 작업들을 일일이 수행하기는 비효울적이니, 하나의 단위로 묶어서 작업을 쉽게 하기 위해서입니다. 함수 사용 여부에 따라 서버와 사용자(클라이언트)간의 통신 횟수가 현저히 차이가 납니다. 함수를 사용하지 않으면 각각의 쿼리를 일일이 서버와 통신해야 하는 반면 함수를 사용하면 한번의 통신만 하면 작업이 가능합니다. 이처럼 함수를 사용하면 여러번의 통신 횟수가 줄어들어 DBMS의 작업 처리가 더 빨라질 수 있습니다. ..

DataScience 2023.06.21

[PostgreSQL] 데이터의 집계 및 결합

다양한 데이터의 결합 방법 데이터베이스로부터 원하는 형태의 데이터를 애플리케이션에 불러오다 보면 가끔 원하는 데이터가 분산되어 있다는 것을 알게 됩니다. 원하는 정보가 분산되어 있는 상황은 여러 가지가 있습니다. 한 테이블에 여러 줄로 원하는 데이터가 분산되어 있는 경우: GROUP BY절을 이용해 “그룹화” 과정을 거쳐야 합니다. 여러 테이블에 같은 유형의 데이터가 분산되어 있는 경우: UNION 혹은 UNION ALL 연산자를 사용해야 합니다. 여러 테이블에 서로 다른 유형의 데이터가 분산되어 있는 경우: FROM절에 두 테이블을 부르고 WHERE절에 조건을 걸어 합치거나 JSON 연산자를 사용해야 합니다. 데이터 그룹화 DISTINCT 알아보기 테이블에서 중복되는 데이터를 없애는 DISTINCT절은..

DataScience 2023.06.20

[postgreSQL] 쿼리에 사용되는 연산자와 함수

연산자와 함수 다양한 연산을 하기 위한 기호나 문자를 연산자라고 합니다. 함수도 마찬가지로 특정 기능을 위한 구문입니다. 논리, 비교 연산자와 조건문 함수 연산자/함수 예시/형식 결과 AND a AND b TRUE, FALSE 또는 NULL OR a OR b TRUE, FALSE 또는 NULL NOT NOT a TRUE, FALSE 또는 NULL IS TRUE IS TRUE TRUE, FALSE 또는 NULL IS FALSE IS FALSE TRUE, FALSE 또는 NULL IS NULL IS NULL 또는 IS UNKNOWN TRUE, FALSE 또는 NULL BETWEEN BETWEEN AND - CASE CASE WHEN THEN … END - COALESCE() COALESCE(매개변수1, 매개..

DataScience 2023.06.19

[PostgreSQL] 데이터타입에 알맞은 테이블 만들기

데이터의 성격에 알맞은 데이터 타입을 선택함으로써 PostgreSQL이 더 빠르고, 정확하게 우리가 원하는 역할을 할 수 있게 되기 때문에 데이터 타입을 아는 것은 중요합니다. 프로그래밍 언어는 대부분 비슷한 데이터 타입을 갖고 있습니다. PostgreSQL도 마찬가지로 비슷한 데이터 타입을 가지고 있습니다. 체계적인 데이터베이스 구축을 위해 데이터베이스의 ‘무결성’에 대해 알아야 합니다. 데이터 타입이란? 데이터 타입 데이터 타입을 선언함으로써 테이블의 각 컬럼 속에 있는 데이터의 성질을 정의할 수 있습니다. 변수명 앞에 데이터 타입을 선언하면서 변수의 성질을 정의하는 것과 유사합니다. 숫자형(Numeric) 숫자형은 테이블의 컬럼속 데이터들을 숫자의 형태로 저장하는 것입니다. 숫자형에는 여러 가지 데..

DataScience 2023.06.14

[PostgreSQL] psql 쉘에서 쿼리 작성하기

다양한 작업을 수행하기 위해서 콘솔에 코드를 입력하여 데이터베이스를 관리하고 조작할 수 있습니다. 사용자 편의를 위해 PostgreSQL은 많은 명령어를 기본적으로 제공하고 있습니다. 콘솔을 이용하면 데이터베이스를 이용해 다양한 애플리케이션에 연결하고 데이터를 백업 및 복원할 수도 있습니다. 한 가지 주의할 점은, 콘솔에 입력하는 코드의 종류에 대해 혼동해서는 안됩니다. 콘솔 명령어는 PostgreSQL 프로그램을 실행하기 위한 코드이며 SQL 문법은 프로그램 내부에서 이해할 수 있는 데이터베이스 고유의 프로그래밍 언어입니다. psql 콘솔이란 무엇인가? 콘솔이란 사람이 컴퓨터를 조작하기 위해 운영체제를 이용할 때 텍스트로 접근하는 방식을 뜻합니다. 즉, 콘솔이란 컴퓨터를 조작하기 위한 도구라고 생각하거..

DataScience 2023.06.13

[PostgreSQL] 보안과 백업

보안 보안을 유지한다는 것은, 안전한 곳에 보관된 데이터에 접근할 수 있는 사람과 그렇지 않은 사람을 구분하고 제한한다는 것과 같습니다. 보안의 정도는 데이터의 중요도에 따라 그리고 누가 얼마나 데이터에 접근할 수 있는지에 따라 달라집니다. DBMS에서 보인이 이루어지는 구조는 사용자가 시스템에 접속할 기본적인 권리가 있다는 것을 확인해주는 인증 단계를 거쳐야합니다. 일반적으로 Id와 Password를 통해 홈페이지에 로그인 하는 방법으로 이 인증 단계를 통과합니다. 인증 단계를 통해 시스템에 접속했다면 시스템내에서 특정 기능에 접근할 수 있는지에 대한 여부를 결정하는 권한 설정 단계를 거쳐야 합니다. 이 단계에서는 사용자가 접근하는 것에 대한 승인이 필요합니다. 권한 설정 단계를 마쳤다면, 사용자는 데..

DataScience 2023.05.31

[PostgreSQL] 트랜잭션

트랜잭션 트랜잭션은 PostgreSQL을 비롯한 DBMS에서 작업 수행의 단위로 쓰이는 논리적인 개념입니다. 데이터를 처리하는 작업 중에 오류가 발생하여 원하는 결과값이 나오지 못할 상황이 되면 트랜잭션은 해당 작업 전체를 취소합니다 .트랜잭션의 개념을 활용하면 단계별로 분리되어 있던 작업이 하나의 작업으로 그룹화됩니다. 즉, 작업 전체가 완벽하게 잘 수행되거나 아니면 아예 수행되지 않거나로 결과가 나뉩니다. 따라서 트랜잭션은 작업 중간의 오류로 인해 발생할 수 있는 데이터의 불일치를 방지함으로써 데이터 작업의 신뢰도를 높이는 효과를 얻을 수 있습니다. 트랜잭션의 특징: ACID 트랜잭션은 네 가지 특징을 가지고 있습니다. 원자성(Atomicity): 작업의 수행은 전체가 다 수행되거나, 아무것도 안되는..

DataScience 2023.05.31

[PostgreSQL] 데이터모델링과 인덱싱

데이터베이스에서 하드웨어 개선 없이도 내부 구조나 기능을 활용하여 속도를 향상시키는 대표적인 방법이 데이터 모델링과 인덱싱을 잘 하는 것입니다. 테이블 사이의 관계 같은 의미의 데이터라도 어떻게 구성할지 전략적으로 정하지 않으면 효율적인 데이터 처리를 수행할 수 없습니다. 이처럼 저장할 데이터의 구조를 정하는 작업을 데이터 모델링이라고 합니다. 데이터 모델링은 많은 양의 데이터를 빈번하게 조회하는 서비스에서 특히 더 중요합니다. 일대다 관계 하나의 테이블이 다른 테이블에 속하는 관계를 일대다 관계라고 합니다. 일대다 관계를 의미하는 정보는 일반적으로 속하는 테이블에 속해지는 테이블 id 값을 저장합니다. 이러한 방식을 이용하면 정보의 중복을 최소화하면서 정보를 저장할 수 있습니다. 이와 같이 서로간의 불..

DataScience 2023.05.30

[PostgreSQL] PostgreSQL 기본

데이터베이스는 무엇인가 데이터베이스 데이터베이스의 정의 데이터는 현실에 존재하는 사실적인 자료들의 집합이라고 볼 수 있습니다. 예를 들어 온도, IQ, 가격 등과 같이 그 자체로는 단순한 사실만을 나타내는 것을 데이터라고 합니다. 이러한 데이터들이 가치를 가지려면, 이들 사이에 논리적인 연관성이 있어야 합니다. 논리적으로 연관된 데이터들을 체계화해서 여러 사람이 공유하여 사용할 목적으로 통합한 것을 데이터베이스라고 합니다. 통합 데이터: 데이터들이 모여있으면 중복되는 데이터들이 있을 수 밖에 없습니다. 그러한 데이터들을 통합하여 중복되는 데이터를 줄이하는 것 저장 데이터: 종이에 쓰인 문서나 책 등이 아니라 컴퓨터 내부에 저장되어 있는 데이터 운영 데이터: 조직을 운영하는 데 도움이 되는 데이터들이 저장..

DataScience 2023.05.08