본문 바로가기

데이터분석 공부하기18

물리 삭제 vs 논리 삭제 안녕하세요, 오늘은 물리삭제와 논리삭제에 대해 간단하게 정리하려고 합니다 :) 요즘 SQL로 데이터관리를 하기 위한 여러 방법들을 배우고 있는데요, 흥미로운 주제를 발견해서 아, 이건 정리해야겠다라는 생각이 들었습니다. 그것은 바로 어떤 row를 삭제하는 방법에는 크게 2가지 방법이 있다는 사실입니다. 그 2가지 방법은 바로 '물리 삭제’와 ‘논리 삭제'입니다. 일반적으로 데이터를 삭제해야할 때 그냥 row를 바로 삭제해버리는 것을 ‘물리 삭제’라고 합니다. 반면에 ‘논리 삭제’는 삭제해야할 row를 삭제하지 않고, ‘삭제 여부’를 나타내는 별도의 컬럼을 두고, 거기에 ‘삭제되었음’을 나타내는 값을 넣는 것을 말합니다. 예를 들어, 어떤 쇼핑몰에서 각 고객의 주문 내역을 저장하고 있는 아래와 같은 ord.. 2021. 12. 18.
카디널리티와 ERM 안녕하세요, 오늘은 저번글, 모델링 기본 정리에 이어 카다널리티와 ERM에 대해 정리해보겠습니다. 해당 글은 코드잇에서 배운 내용을 토대로 정리한 글입니다. 1. 카디널리티 카디널리티는 두 entity type 사이 관계에서 한 종류의 entity가 다른 종류의 entity 몇 개에 대해서 관계를 맺을 수 있는지를 나타내는 개념입니다. 아래에서 배울 내용들에서는 두 Entity Type, A와 B가 이렇게 있다고 가정하겠습니다. 1:1 관계 첫 번째 관계는 1:1 (일대일) 관계입니다. 일대일 관계는 A entity 하나가 B entity 하나에만 연결될 수 있고, 마찬가지로 B entity 하나도 A entity 하나에만 연결될 수 있는 관계를 의미합니다. 1:N 관계 두 번째 관계는 1:N (일대다).. 2021. 12. 5.
MySQL 데이터 타입(Data type) 코드잇 강의를 듣던 중 테이블을 만들면서 데이터 타입에 대해 정리해보는 시간을 가져보는게 좋겠다는 생각이 들었습니다. 한번 정리해보죠! 해당 글은 코드잇에서 배운 내용을 토대로 정리한 글입니다. 위의 사진처럼 각 컬럼마다 저장될 값들은 각자 알맞은 데이터 타입을 가지고 있습니다. 데이터 타입을 잘 설정해야 저장용량을 효율적으로 활용할 수 있고, 나중에 row 수가 많아졌을 때에도 성능에 영향을 미치기 때문에 각 컬럼에 적절한 데이터 타입으 설정해야 합니다. 사용할 수 있는 데이터 타입은 DBMS마다 조금씩 차이가 있는데요, 저는 MySQL을 사용하고 있기 때문에 MySQL의 데이터 타입을 살펴보겠습니다. 일반적으로 세 가지 카테고리로 분류할 수 있습니다. 이밖에도 여러 카테고리가 있지만 위의 세 가지 카.. 2021. 11. 21.
모델링 기본 정리 이번 포스팅은 모델링 기본기를 정리하려고 합니다 :) 해당 글은 코드잇에서 실습한 내용을 토대로 정리한 글입니다. 모델링의 시작은 Entity, Attribute, Relationship을 파악하는 것입니다. 바로 비즈니스 룰(사업 규칙)을 이용하면 쉽게 알 수 있습니다. 다같이 더 자세하게 알아볼까요. 1. 비즈니스 룰 "특정 조직이 운영되기 위해 따라야 하는 정책, 절차, 원칙에 대한 간단명료한 설명" - Coronel 예를 들어 온라인 쇼핑몰, 고공 쇼핑몰's 의 비즈니스 룰을 살펴봅시다. 쇼핑몰 사이트를 운영할 때 아래와 같은 정책들을 살펴볼 수 있습니다. 고공의 쇼핑몰's 비즈니스 룰 - 고객은 상품을 주문할 수 있다. 하나의 주문에는 최대 10개의 상품까지만 가능하다. - 동일한 주문 내역은 .. 2021. 11. 7.
데이터 모델링 해당 글은 코드잇에서 실습한 내용을 토대로 정리한 글입니다 :) 우리는 데이터를 가져오기 위해 데이터베이스를 사용합니다. 데이터를 저장, 삭제, 조회하기 전부터 먼저 해야할 것이 있습니다. 바로 데이터를 '어떻게' 저장할지 계획하는 것입니다. 예를 들어, 위의 사진을 보면 id, email, name, gender의 컬럼으로 각 정보를 담은 테이블이 있습니다. 그리고 테이블 위의 글자를 살펴보면 INTEGER, TEXT 등 각각의 데이터 타입과 PRIMARY KEY, UNIQUE 등 데이터의 속성들이 나타나 있습니다. 이러한 속성을 준 것은 누군가가 이 테이블을 생성할때 미리 설정해놓은 것이겠죠. 이렇게 데이터베이스를 새롭게 구축할때는 데이터를 어떤 테이블로 나타낼지, 각 테이블에는 어떤 컬럼을 설정해야.. 2021. 10. 24.
ANY, SOME, ALL 해당 글은 코드잇에서 실습한 내용을 토대로 정리한 글입니다 :) 오늘은 서브쿼리에 대해 배웠던 내용들 중에 ANY, SOME, ALL에 대해 잠깐 정리해보고자 합니다. 위 사진처럼 IN을 이용해 name의 조건절을 사용했습니다. 이렇게 IN 말고도 유용하게 사용할 수 있는 다른 키워드들이 있는데요, 바로 ANY, SOME과 ALL입니다! 1. ANY 위 그림을 보면 silicon_valley 테이블에 company(회사명), year(입사연도), race(인종), gender(성별), job_category(직무), count(인원 수) 컬럼이 있습니다. 여기서 job_category 컬럼의 Managers 값을 나타낸 count 컬럼을 살펴보겠습니다. 각 Managers 직무의 인원 수가 잘 보입니다... 2021. 10. 10.