본문 바로가기

[DE] 개발자들은 어떤 데이터베이스를 많이 사용할까? 데이터베이스의 종류에 대해 공부하다보니 문득 다른 개발자들은 어떤 데이터베이스를 많이 사용할지, 또 어떤 데이터베이스가 트렌드일지 궁금해졌다. chatGPT와 이런 저런 대화를 하다 보니, 오류를 맞이할 때마다 단골손님으로 방문하게 되는 사이트 stackoverflow에서 개발자 대상으로 매년 진행하는 설문조사 "StackOverflow Developer Survey"를 2011년부터 진행하고 있다는 걸 알게 됐다. (이후 Stack Overflow 설문조사에 대해 질문한 결과) 기존에는 테이블 형식의 데이터가 많이 다뤄지다보니 RDBMS를 많이 사용하다가, 저장해야 하는 데이터 형식이 다양해지면서 NoSQL이 등장하게 되고 점차 사용하게 됐다고 하는데 실제 많은 개발자들이 그렇게 사용하고 있는지 궁금해..
[SQL] 3. 관계 대수 관계 대수에 들어가기에 앞서, 관계 해석과 대수가 어떤 차이점을 가지고 있는지 알아보자. 관계 해석(relational calculus)이란 원하는 데이터만 명시하고 질의를 어떻게 수행할지는 명시하지 않는 선언적 언어이다. 그에 비해 관계 대수(relational algebra)는 어떻게 질의를 수행할지에 대해서도 명시하는 절차적 언어이며, SQL을 구현하고 최적화하기 위해 DBMS 내부 언어로도 사용되고 있다. 그렇다면 관계 대수에서의 연산자들에 대해 알아보자. 1. selection 연산자 : selection 조건(=predicate)을 만족하는 tuple들의 부분 집합 2. projection 연산자 : attribute list에 명시된 attribute만 가지는 attribute들의 부분 집합..
[SQL] 2. 관계 데이터 모델과 제약조건 관계 데이터 모델 : 동일 구조(relation) 관점에서 모든 데이터를 논리적으로 구성 relation(=table, file) : 2차원 테이블, tuple의 집합(중복 허용 X) tuple(=record, row) : relation의 각 행, 순서 중요 X attribute(=column, field) : relation에서 이름을 가진 하나의 column domain : 한 attribute에 나타낼 수 있는 값들의 집합 degree(차수) : 한 relation에 들어있는 attribute 수 cardinality : relation의 tuple 수 null value(널값) : 알려지지 않음(현재 상태에서 알 수 없음) or 적용할 수 없음(존재할 수 없음) relation schema(릴레..