[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:database\u002Fdata-modeling":4,"config":215},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":115,"samples":129},"database","Database","","data-modeling","Data Modeling","en",75,2475,[14,15,16],"junior","mid","senior",[18,21,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112],{"key":19,"name":20,"count":11},"backup-recovery","Backup Recovery",{"key":8,"name":9,"count":11},{"key":23,"name":24,"count":11},"indexing","Indexing",{"key":26,"name":27,"count":11},"mongodb-aggregation","Mongodb Aggregation",{"key":29,"name":30,"count":11},"mongodb-indexes-queries","Mongodb Indexes Queries",{"key":32,"name":33,"count":11},"mongodb-operations","Mongodb Operations",{"key":35,"name":36,"count":11},"mongodb-replication-sharding","Mongodb Replication Sharding",{"key":38,"name":39,"count":11},"mongodb-schema-modeling","Mongodb Schema Modeling",{"key":41,"name":42,"count":11},"mongodb-transactions-consistency","Mongodb Transactions Consistency",{"key":44,"name":45,"count":11},"mysql-indexes","Mysql Indexes",{"key":47,"name":48,"count":11},"mysql-innodb-transactions","Mysql Innodb Transactions",{"key":50,"name":51,"count":11},"mysql-operations","Mysql Operations",{"key":53,"name":54,"count":11},"mysql-query-optimization","Mysql Query Optimization",{"key":56,"name":57,"count":11},"mysql-replication-scaling","Mysql Replication Scaling",{"key":59,"name":60,"count":11},"mysql-types-constraints","Mysql Types Constraints",{"key":62,"name":63,"count":11},"nosql-models","Nosql Models",{"key":65,"name":66,"count":11},"performance-tuning","Performance Tuning",{"key":68,"name":69,"count":11},"pg-indexes","Pg Indexes",{"key":71,"name":72,"count":11},"pg-mvcc-vacuum","Pg Mvcc Vacuum",{"key":74,"name":75,"count":11},"pg-operations","Pg Operations",{"key":77,"name":78,"count":11},"pg-query-planning","Pg Query Planning",{"key":80,"name":81,"count":11},"pg-transactions-locking","Pg Transactions Locking",{"key":83,"name":84,"count":11},"pg-types-constraints","Pg Types Constraints",{"key":86,"name":87,"count":11},"query-optimization","Query Optimization",{"key":89,"name":90,"count":11},"redis-cluster-sharding","Redis Cluster Sharding",{"key":92,"name":93,"count":11},"redis-data-structures","Redis Data Structures",{"key":95,"name":96,"count":11},"redis-expiration-eviction","Redis Expiration Eviction",{"key":98,"name":99,"count":11},"redis-persistence","Redis Persistence",{"key":101,"name":102,"count":11},"redis-replication-sentinel","Redis Replication Sentinel",{"key":104,"name":105,"count":11},"redis-transactions-scripting","Redis Transactions Scripting",{"key":107,"name":108,"count":11},"replication-scaling","Replication Scaling",{"key":110,"name":111,"count":11},"security-access","Security Access",{"key":113,"name":114,"count":11},"transactions-isolation","Transactions Isolation",[116,120,123,126],{"key":117,"name":118,"count":119},"mongodb","MongoDB",450,{"key":121,"name":122,"count":119},"mysql","MySQL",{"key":124,"name":125,"count":119},"postgresql","PostgreSQL",{"key":127,"name":128,"count":119},"redis","Redis",[130,148,161,174,188,202],{"id":131,"topic":9,"difficulty":132,"body":133,"options":134,"correct_key":139,"explanation":147},"019f56bb-b5d8-70ae-911a-2ca3e7a4624c",2,"In a data model, how do PRIMARY KEY, UNIQUE, and FOREIGN KEY constraints differ in their roles?",[135,138,141,144],{"key":136,"text":137},"a","PRIMARY KEY and UNIQUE both identify rows; FOREIGN KEY stores a copy of the referenced row's data",{"key":139,"text":140},"b","PRIMARY KEY marks the row's main identifier; UNIQUE enforces alternate uniqueness; FOREIGN KEY links to another table's key",{"key":142,"text":143},"c","All three enforce uniqueness within their own table and none of them allow NULL values",{"key":145,"text":146},"d","PRIMARY KEY and FOREIGN KEY must always be the same column; UNIQUE is only an index hint","The primary key is the chosen main identifier (one per table, unique + NOT NULL); UNIQUE enforces uniqueness on alternate\u002Fcandidate keys and may allow NULLs; a foreign key references another table's key to enforce referential integrity. A foreign key does not copy the referenced data (a), UNIQUE is a real constraint rather than a mere index hint and can permit NULLs, so (c) and (d) are wrong.",{"id":149,"topic":9,"difficulty":132,"body":150,"options":151,"correct_key":145,"explanation":160},"019f56bb-b5d8-784a-9f32-e74f88a36980","What best describes the difference between a natural key and a surrogate key?",[152,154,156,158],{"key":136,"text":153},"A natural key is generated by the system; a surrogate key is taken from the real-world data",{"key":139,"text":155},"A surrogate key must always be composite, while a natural key is always a single column",{"key":142,"text":157},"Natural keys are faster to join because they never need to be indexed",{"key":145,"text":159},"A natural key is a meaningful real-world attribute; a surrogate key is an artificial system-generated value","A natural key uses existing meaningful data (e.g. ISBN, email); a surrogate key is an artificial value (e.g. an auto-generated integer or UUID) with no business meaning. Option (a) reverses the two, surrogate keys are typically single-column and not required to be composite (b), and natural keys still need indexes like any key (c).",{"id":162,"topic":9,"difficulty":132,"body":163,"options":164,"correct_key":142,"explanation":173},"019f56bb-b5d9-736d-bb72-1c85af6ccec7","What is a composite primary key?",[165,167,169,171],{"key":136,"text":166},"A primary key that automatically increments across two tables at once",{"key":139,"text":168},"A primary key that is duplicated into a second column to serve as a backup",{"key":142,"text":170},"A primary key made up of two or more columns whose combination must be unique",{"key":145,"text":172},"A primary key that may be NULL as long as at least one of its columns has a value","A composite key uses several columns together; uniqueness is enforced on the combination, not on each column alone. It is common on junction tables, e.g. (student_id, course_id). No part of a primary key may be NULL, so (d) is wrong; it is neither a backup copy (b) nor a cross-table auto-increment (a).",{"id":175,"topic":9,"difficulty":176,"body":177,"options":178,"correct_key":136,"explanation":187},"019f56bb-b5d9-7e0c-94de-9663897f0b98",1,"First normal form (1NF) requires that:",[179,181,183,185],{"key":136,"text":180},"each column holds a single atomic value, with no lists or repeating groups",{"key":139,"text":182},"every table is limited to a maximum of three columns",{"key":142,"text":184},"all textual columns are stored using fixed-length CHAR types",{"key":145,"text":186},"each table participates in at least one foreign-key relationship with another table","1NF forbids multi-valued and repeating columns: every cell holds one atomic value and there are no repeating groups. Column counts (b), physical CHAR storage (c), and relationship requirements (d) have nothing to do with normal forms.",{"id":189,"topic":9,"difficulty":190,"body":191,"options":192,"correct_key":142,"explanation":201},"019f56bb-b5db-71d5-8180-900d2d74a687",3,"A table `order_items(order_id, product_id, quantity, product_name)` has the composite primary key `(order_id, product_id)`, and `product_name` depends only on `product_id`. What is the problem and its fix?",[193,195,197,199],{"key":136,"text":194},"It violates 1NF because product_name repeats; split each value into its own row",{"key":139,"text":196},"It violates 3NF through a transitive dependency; move quantity into another table",{"key":142,"text":198},"It violates 2NF: product_name is a partial dependency on part of the key; move it to a products table",{"key":145,"text":200},"It violates no normal form; a wide order-line table is always an acceptable design","2NF requires every non-key column to depend on the whole composite key. `product_name` depends only on `product_id`, part of the key — a partial dependency — so it belongs in a `products` table keyed by product_id. The values are atomic, so it is not a 1NF issue (a), and a partial dependency is distinct from the transitive dependency that 3NF addresses (b).",{"id":203,"topic":9,"difficulty":190,"body":204,"options":205,"correct_key":145,"explanation":214},"019f56bb-b5db-783e-b2a7-abde2a03ca44","A table `employees(emp_id, name, dept_id, dept_name)` has the single-column primary key `emp_id`. Here `dept_name` depends on `dept_id`, which in turn depends on `emp_id`. What is this, and what does 3NF prescribe?",[206,208,210,212],{"key":136,"text":207},"A partial dependency; it is already resolved because emp_id is the sole key",{"key":139,"text":209},"A multi-valued dependency; resolving it requires fourth normal form (4NF)",{"key":142,"text":211},"Nothing is wrong, since dept_name is allowed to stay while dept_id is not the primary key",{"key":145,"text":213},"A transitive dependency; move dept_name into a departments table keyed by dept_id","`dept_name` depends on a non-key column (`dept_id`) that itself depends on the key — a transitive dependency, which 3NF removes by relocating dept_name to a `departments` table. With a single-column key there is no partial dependency (a), and this is a functional\u002Ftransitive issue, not a multi-valued one needing 4NF (b).",{"fields":216,"seniorities":391,"interview_shapes":392,"locales":397,"oauth":399,"question_count":402,"coach_enabled":403,"jd_match_enabled":403},[217,242,262,278,302,315,324,343,365,372,378,385],{"key":218,"name_tr":219,"name_en":219,"sort":176,"specializations":220},"backend","Backend",[221,224,227,230,233,236,239],{"key":222,"name":223,"field":218},"general","Genel",{"key":225,"name":226,"field":218},"go","Go",{"key":228,"name":229,"field":218},"python","Python",{"key":231,"name":232,"field":218},"java","Java",{"key":234,"name":235,"field":218},"csharp","C#\u002F.NET",{"key":237,"name":238,"field":218},"nodejs","Node.js",{"key":240,"name":241,"field":218},"php","PHP",{"key":243,"name_tr":244,"name_en":244,"sort":132,"specializations":245},"frontend","Frontend",[246,247,250,253,256,259],{"key":222,"name":223,"field":243},{"key":248,"name":249,"field":243},"javascript","JavaScript",{"key":251,"name":252,"field":243},"typescript","TypeScript",{"key":254,"name":255,"field":243},"react","React",{"key":257,"name":258,"field":243},"vue","Vue",{"key":260,"name":261,"field":243},"angular","Angular",{"key":263,"name_tr":264,"name_en":264,"sort":190,"specializations":265},"fullstack","Fullstack",[266,267,268,269,270,271,272,273,274,275,276,277],{"key":222,"name":223,"field":263},{"key":225,"name":226,"field":218},{"key":228,"name":229,"field":218},{"key":231,"name":232,"field":218},{"key":234,"name":235,"field":218},{"key":237,"name":238,"field":218},{"key":240,"name":241,"field":218},{"key":248,"name":249,"field":243},{"key":251,"name":252,"field":243},{"key":254,"name":255,"field":243},{"key":257,"name":258,"field":243},{"key":260,"name":261,"field":243},{"key":279,"name_tr":280,"name_en":280,"sort":281,"specializations":282},"devops-cloud","DevOps \u002F Cloud",4,[283,284,287,290,293,296,299],{"key":222,"name":223,"field":279},{"key":285,"name":286,"field":279},"aws","AWS",{"key":288,"name":289,"field":279},"gcp","GCP",{"key":291,"name":292,"field":279},"azure","Azure",{"key":294,"name":295,"field":279},"kubernetes","Kubernetes",{"key":297,"name":298,"field":279},"terraform","Terraform",{"key":300,"name":301,"field":279},"linux","Linux",{"key":303,"name_tr":304,"name_en":304,"sort":305,"specializations":306},"ai-engineer","AI Engineer",5,[307,308,309,312],{"key":222,"name":223,"field":303},{"key":228,"name":229,"field":303},{"key":310,"name":311,"field":303},"llm-rag","LLM\u002FRAG",{"key":313,"name":314,"field":303},"mlops","MLOps",{"key":5,"name_tr":316,"name_en":6,"sort":317,"specializations":318},"Veritabanı",6,[319,320,321,322,323],{"key":222,"name":223,"field":5},{"key":124,"name":125,"field":5},{"key":121,"name":122,"field":5},{"key":117,"name":118,"field":5},{"key":127,"name":128,"field":5},{"key":325,"name_tr":326,"name_en":327,"sort":328,"specializations":329},"mobile","Mobil","Mobile",7,[330,331,334,337,340],{"key":222,"name":223,"field":325},{"key":332,"name":333,"field":325},"ios-swift","iOS (Swift)",{"key":335,"name":336,"field":325},"android-kotlin","Android (Kotlin)",{"key":338,"name":339,"field":325},"flutter","Flutter",{"key":341,"name":342,"field":325},"react-native","React Native",{"key":344,"name_tr":345,"name_en":346,"sort":347,"specializations":348},"security","Güvenlik","Security",8,[349,350,353,356,359,362],{"key":222,"name":223,"field":344},{"key":351,"name":352,"field":344},"appsec","AppSec",{"key":354,"name":355,"field":344},"offensive-pentest","Offensive \u002F Pentest",{"key":357,"name":358,"field":344},"cloud-security","Cloud Security",{"key":360,"name":361,"field":344},"devsecops","DevSecOps",{"key":363,"name":364,"field":344},"blue-team-incident","Blue Team \u002F Incident",{"key":366,"name_tr":367,"name_en":368,"sort":369,"specializations":370},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[371],{"key":222,"name":223,"field":366},{"key":373,"name_tr":374,"name_en":374,"sort":375,"specializations":376},"data-engineer","Data Engineer",10,[377],{"key":222,"name":223,"field":373},{"key":379,"name_tr":380,"name_en":381,"sort":382,"specializations":383},"game-dev","Oyun Geliştirme","Game Development",11,[384],{"key":222,"name":223,"field":379},{"key":386,"name_tr":387,"name_en":387,"sort":388,"specializations":389},"ml-engineer","ML Engineer",12,[390],{"key":222,"name":223,"field":386},[14,15,16],{"junior":393,"mid":395,"senior":396},{"questions":394,"median_sec":3},20,{"questions":394,"median_sec":3},{"questions":394,"median_sec":3},[398,10],"tr",[400,401],"google","github",21750,true]