[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:database\u002Fnosql-models":4,"config":214},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","Veritabanı","","nosql-models","Nosql Models","tr",75,2475,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,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":22,"name":23,"count":11},"data-modeling","Data Modeling",{"key":25,"name":26,"count":11},"indexing","Indexing",{"key":28,"name":29,"count":11},"mongodb-aggregation","Mongodb Aggregation",{"key":31,"name":32,"count":11},"mongodb-indexes-queries","Mongodb Indexes Queries",{"key":34,"name":35,"count":11},"mongodb-operations","Mongodb Operations",{"key":37,"name":38,"count":11},"mongodb-replication-sharding","Mongodb Replication Sharding",{"key":40,"name":41,"count":11},"mongodb-schema-modeling","Mongodb Schema Modeling",{"key":43,"name":44,"count":11},"mongodb-transactions-consistency","Mongodb Transactions Consistency",{"key":46,"name":47,"count":11},"mysql-indexes","Mysql Indexes",{"key":49,"name":50,"count":11},"mysql-innodb-transactions","Mysql Innodb Transactions",{"key":52,"name":53,"count":11},"mysql-operations","Mysql Operations",{"key":55,"name":56,"count":11},"mysql-query-optimization","Mysql Query Optimization",{"key":58,"name":59,"count":11},"mysql-replication-scaling","Mysql Replication Scaling",{"key":61,"name":62,"count":11},"mysql-types-constraints","Mysql Types Constraints",{"key":8,"name":9,"count":11},{"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,175,188,201],{"id":131,"topic":9,"difficulty":132,"body":133,"options":134,"correct_key":139,"explanation":147},"019f56bb-b633-72ec-a9b1-1474be3ebbe0",1,"Document-oriented bir NoSQL veritabanında temel veri birimi nedir?",[135,138,141,144],{"key":136,"text":137},"a","Önceden tanımlı bir tablo şemasına uymak zorunda olan sabit bir satır",{"key":139,"text":140},"b","Nested alanlar tutabilen, kendini tanımlayan bir document (ör. JSON\u002FBSON)",{"key":142,"text":143},"c","Yalnızca tam key'i ile erişilen tek bir değer",{"key":145,"text":146},"d","Etiketli edge'lerle diğer node'lara bağlanan bir node","Document store'lar veriyi kendini tanımlayan document'lar (JSON\u002FBSON) olarak tutar; her document kendi yapısını taşır, alanları ve array'leri nested biçimde barındırabilir. Sabit tablo satırı (a) relational modeli; yalnızca key ile erişim (c) key-value modeli; node ve edge (d) bir graph veritabanını tarif eder.",{"id":149,"topic":9,"difficulty":132,"body":150,"options":151,"correct_key":145,"explanation":160},"019f56bb-b635-7426-ac92-8def055af18b","Bir key-value store hangi iş yüküne en doğal biçimde uyar?",[152,154,156,158],{"key":136,"text":153},"Birçok attribute üzerinde filtreleyip aggregate eden ad-hoc raporlama",{"key":139,"text":155},"Birkaç normalized tablo arasında foreign key zorunlu kılmak",{"key":142,"text":157},"Büyük bir sosyal ağda arkadaş-arkadaşı ilişkilerini gezinmek",{"key":145,"text":159},"Tek bir id ile erişilen kullanıcı session'ları veya cache kayıtlarını tutmak","Key-value store bir key'i bir değere eşler ve key ile hızlı get\u002Fput için optimize edilmiştir — session ve cache için idealdir. Birçok attribute üzerinde ad-hoc filtreleme (a) daha zengin sorgu desteği ister; foreign key ve normalization (b) relational özelliklerdir; çok adımlı ilişki gezinimi (c) graph veritabanlarının hedefidir.",{"id":162,"topic":9,"difficulty":163,"body":164,"options":165,"correct_key":136,"explanation":174},"019f56bb-b639-7dae-a6bc-8cf18789bc4d",2,"Bir document veritabanı şu order'ı saklıyor:\n```json\n{\n  \"orderId\": \"A-100\",\n  \"customer\": { \"name\": \"Lee\", \"city\": \"Berlin\" },\n  \"items\": [\n    { \"sku\": \"X1\", \"qty\": 2 },\n    { \"sku\": \"X2\", \"qty\": 1 }\n  ]\n}\n```\nBir document veritabanı customer ve items'ı order'ın *içinde* böyle tutabilirken, normalize edilmiş bir relational tasarım genelde neden tutmaz?",[166,168,170,172],{"key":136,"text":167},"Bir document nested object ve array'leri tek bir kendine yeten birim olarak tutar, ilişkili veriyi bir arada saklar",{"key":139,"text":169},"JSON document'lar başka document'lara asla referans veremez, bu yüzden tüm veri hep inline gömülmelidir",{"key":142,"text":171},"Motor nested alanları perde arkasında sessizce gizli relational tablolara böler",{"key":145,"text":173},"Relational tablolar bir parent entity için asla birden fazla ilişkili child satır tutamaz","Document veritabanları bir aggregate modeller: tek bir document alt-object'leri ve array'leri gömebilir; böylece bir order kendi customer'ını ve satırlarını birlikte taşır ve tek bir erişimde okunur. Document'lar başka document'lara referans da verebilir (b yanlış), motor onları gizlice normalize etmez (c) ve relational tablolar ayrı bir tablo aracılığıyla pekâlâ çok sayıda child satır tutabilir (d).",{"id":176,"topic":9,"difficulty":132,"body":177,"options":178,"correct_key":142,"explanation":187},"019f56bb-b643-7def-9984-1d5bf6006148","Hangi liste NoSQL veritabanlarının dört yaygın kategorisini doğru sıralar?",[179,181,183,185],{"key":136,"text":180},"Relational, hierarchical, network ve object",{"key":139,"text":182},"Primary, secondary, clustered ve covering",{"key":142,"text":184},"Document, key-value, wide-column ve graph",{"key":145,"text":186},"OLTP, OLAP, columnar ve in-memory","Yaygın anılan dört NoSQL ailesi document, key-value, wide-column ve graph'tır; her birinin veri modeli farklıdır. (a) daha eski\u002Frelational modelleri; (b) index türlerini; (d) NoSQL veri modelleri yerine iş yükü ve depolama kategorilerini karıştırır.",{"id":189,"topic":9,"difficulty":163,"body":190,"options":191,"correct_key":139,"explanation":200},"019f56bb-b645-706a-b0e0-c0d93b2d16ab","Bir uygulama, geniş ve yoğun bağlantılı bir sosyal ağda '3 adıma kadar, X kullanıcısının arkadaşlarının arkadaşları kimler?' gibi soruları yanıtlamalı. Hangi NoSQL modeli en uygun?",[192,194,196,198],{"key":136,"text":193},"Key-value store, key olarak user id kullanarak",{"key":139,"text":195},"Graph database, kullanıcıları node, arkadaşlıkları edge olarak modelleyerek",{"key":142,"text":197},"Wide-column store, kullanıcı başına çok geniş tek bir satırla",{"key":145,"text":199},"Document store, her kullanıcının tüm arkadaş ağacını tek document'a gömerek","Çok adımlı ilişki gezinimi tam da graph veritabanlarının optimize ettiği şeydir: node ve edge'ler, pahalı tekrarlı join'ler olmadan bağlantılarda gezinmeyi sağlar. Key-value store (a) ilişkilerde gezinemez; tek bir wide-column satırı (c) keyfi bağlantıları modellemez; tüm arkadaş ağacını tek document'a gömmek (d) boyutu patlatır ve veriyi kötü biçimde çoğaltır.",{"id":202,"topic":9,"difficulty":163,"body":203,"options":204,"correct_key":145,"explanation":213},"019f56bb-b648-7277-8919-adaf1576b3aa","Bir ekip 'NoSQL her zaman relational'dan daha hızlı ve daha iyidir, o yüzden SQL'i tamamen bırakmalıyız' diyor. Bu akıl yürütme neden hatalı?",[205,207,209,211],{"key":136,"text":206},"NoSQL veritabanları temelde horizontal ölçeklenemez, o yüzden relational tek güvenli varsayılandır",{"key":139,"text":208},"Gerçek bir fark yok; 'SQL' ve 'NoSQL' tam olarak aynı teknolojinin iki adıdır",{"key":142,"text":210},"Relational veritabanları her senaryoda NoSQL'den daha hızlıdır, o yüzden NoSQL'e geçmek kesinlikle asla zahmete değmez",{"key":145,"text":212},"NoSQL, join ve çok-satırlı ACID gibi özellikleri scale veya esneklik için takas eder; en uygun seçim iş yüküne bağlıdır","NoSQL evrensel olarak üstün değildir: farklı NoSQL modelleri, scale veya esneklik kazanmak için genel amaçlı join'ler ya da güçlü çok-kayıtlı transaction'lar gibi şeylerden vazgeçer; uygunluk erişim desenlerine bağlıdır. Diğer şıklar mutlak ifadelerdir — NoSQL horizontal ölçeklenebilir (a yanlış), ikisi gerçekten farklı yaklaşımlardır (b) ve hiçbiri her durumda kazanmaz (c).",{"fields":215,"seniorities":391,"interview_shapes":392,"locales":397,"oauth":399,"question_count":402,"coach_enabled":403,"jd_match_enabled":403},[216,241,261,278,302,315,324,343,365,372,378,385],{"key":217,"name_tr":218,"name_en":218,"sort":132,"specializations":219},"backend","Backend",[220,223,226,229,232,235,238],{"key":221,"name":222,"field":217},"general","Genel",{"key":224,"name":225,"field":217},"go","Go",{"key":227,"name":228,"field":217},"python","Python",{"key":230,"name":231,"field":217},"java","Java",{"key":233,"name":234,"field":217},"csharp","C#\u002F.NET",{"key":236,"name":237,"field":217},"nodejs","Node.js",{"key":239,"name":240,"field":217},"php","PHP",{"key":242,"name_tr":243,"name_en":243,"sort":163,"specializations":244},"frontend","Frontend",[245,246,249,252,255,258],{"key":221,"name":222,"field":242},{"key":247,"name":248,"field":242},"javascript","JavaScript",{"key":250,"name":251,"field":242},"typescript","TypeScript",{"key":253,"name":254,"field":242},"react","React",{"key":256,"name":257,"field":242},"vue","Vue",{"key":259,"name":260,"field":242},"angular","Angular",{"key":262,"name_tr":263,"name_en":263,"sort":264,"specializations":265},"fullstack","Fullstack",3,[266,267,268,269,270,271,272,273,274,275,276,277],{"key":221,"name":222,"field":262},{"key":224,"name":225,"field":217},{"key":227,"name":228,"field":217},{"key":230,"name":231,"field":217},{"key":233,"name":234,"field":217},{"key":236,"name":237,"field":217},{"key":239,"name":240,"field":217},{"key":247,"name":248,"field":242},{"key":250,"name":251,"field":242},{"key":253,"name":254,"field":242},{"key":256,"name":257,"field":242},{"key":259,"name":260,"field":242},{"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":221,"name":222,"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":221,"name":222,"field":303},{"key":227,"name":228,"field":303},{"key":310,"name":311,"field":303},"llm-rag","LLM\u002FRAG",{"key":313,"name":314,"field":303},"mlops","MLOps",{"key":5,"name_tr":6,"name_en":316,"sort":317,"specializations":318},"Database",6,[319,320,321,322,323],{"key":221,"name":222,"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":221,"name":222,"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":221,"name":222,"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":221,"name":222,"field":366},{"key":373,"name_tr":374,"name_en":374,"sort":375,"specializations":376},"data-engineer","Data Engineer",10,[377],{"key":221,"name":222,"field":373},{"key":379,"name_tr":380,"name_en":381,"sort":382,"specializations":383},"game-dev","Oyun Geliştirme","Game Development",11,[384],{"key":221,"name":222,"field":379},{"key":386,"name_tr":387,"name_en":387,"sort":388,"specializations":389},"ml-engineer","ML Engineer",12,[390],{"key":221,"name":222,"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},[10,398],"en",[400,401],"google","github",21750,true]